---
title: pageExtensions
description: Extend the default page extensions used by Next.js when resolving pages in the Pages Router.
url: "https://nextjs.org/docs/15/pages/api-reference/config/next-config-js/pageExtensions"
docs_index: /docs/15/pages/llms.txt
lastUpdated: 2025-04-15
prerequisites:
  - "Configuration: /docs/15/pages/api-reference/config"
  - "next.config.js Options: /docs/15/pages/api-reference/config/next-config-js"
---

> For an index of all documentation, see [/docs/15/pages/llms.txt](/docs/15/pages/llms.txt).

You can extend the default Page extensions (`.tsx`, `.ts`, `.jsx`, `.js`) used by Next.js. Inside `next.config.js`, add the `pageExtensions` config:

```js title="next.config.js"
module.exports = {
  pageExtensions: ['mdx', 'md', 'jsx', 'js', 'tsx', 'ts'],
}
```

Changing these values affects *all* Next.js pages, including the following:

- [`middleware.js`](/docs/pages/api-reference/file-conventions/middleware)
- [`instrumentation.js`](/docs/pages/guides/instrumentation)
- `pages/_document.js`
- `pages/_app.js`
- `pages/api/`

For example, if you reconfigure `.ts` page extensions to `.page.ts`, you would need to rename pages like `middleware.page.ts`, `instrumentation.page.ts`, `_app.page.ts`.

## Including non-page files in the `pages` directory

You can colocate test files or other files used by components in the `pages` directory. Inside `next.config.js`, add the `pageExtensions` config:

```js title="next.config.js"
module.exports = {
  pageExtensions: ['page.tsx', 'page.ts', 'page.jsx', 'page.js'],
}
```

Then, rename your pages to have a file extension that includes `.page` (e.g. rename `MyPage.tsx` to `MyPage.page.tsx`). Ensure you rename *all* Next.js pages, including the files mentioned above.

---

For a semantic overview of all documentation, see [/sitemap.md](/sitemap.md)

For an index of all available documentation, see [/docs/15/pages/llms.txt](/docs/15/pages/llms.txt)