Keep WordPress AI discovery routes open without loosening security
Install the WordPress AI Indexing Pack, then test its public routes against firewall and cache rules without weakening protection across the whole site.
A careful migration starts with a URL and content inventory, then tests every important route before and after launch.
A WordPress-to-PHP migration is not just a template rewrite. Search engines and visitors already rely on the URLs, links and content your site has accumulated. Change those carelessly and the new site can launch with broken paths, missing pages or a smaller search footprint.
The safer approach is to treat the rebuild as a controlled transfer. Record what exists, reproduce what matters, and test the replacement before directing visitors to it. A custom PHP site can reduce dependence on WordPress and its extensions, but the language change alone does not protect rankings or guarantee lower operating costs.
Start with a complete list of public URLs, not just the pages in the main menu. Include posts, category and product pages, image files that receive search traffic, and any useful landing pages. Record each page’s current status, title, description, canonical URL and internal links. If analytics or search data is available, note which URLs bring visits or conversions; those pages deserve extra attention.
Keep a separate list of redirects already in place. Otherwise, a migration can accidentally remove old routes that still send visitors to relevant pages. Save a copy of the current sitemap and check that its URLs match the live site. This inventory becomes the acceptance checklist for the new build.
Export the WordPress content and make a separate, restorable backup of the site’s database and files. Treat these as different jobs. A content export is useful for moving text and records, but it should not be assumed to contain every media file, setting or piece of site behavior.
Copy images and documents, then connect each one to the page or record that uses it. Keep identifiers and existing slugs in the migration data where practical. For each page, check that the new version retains the text, headings, links and image alternatives that are still relevant. Remove outdated material deliberately rather than letting it disappear during import.
For an online store, include product and category URLs in the inventory. Decide how product details, options and useful content will be represented in the replacement. Plan separately for customer accounts, orders and checkout: the public page migration does not itself move those workflows. Before changing anything that handles payments or customer records, verify the required operational and data-handling arrangements.
For every old URL, choose one of two outcomes: keep the same path or map it to the closest equivalent page. Make this decision in a spreadsheet before building. Preserving established paths avoids needless redirect work and keeps existing links useful.
When a URL must change, use a permanent 301 redirect from the old address directly to its new equivalent. Avoid sending several old paths through a chain of redirects, and do not send unrelated pages to the home page simply to avoid a 404. A missing page should be retired only when there is no meaningful replacement.
Test the mapping as a list, not by clicking a handful of links. Check that each old address returns the intended response and reaches the right final page. Also check internal links on the new site so they point directly to current URLs instead of relying on redirects.
Match titles, descriptions, headings and canonical URLs to the intended page. Keep useful structured data only where the page content supports it. Set up a sitemap containing the new canonical URLs, and make sure robots rules do not block public pages during launch. A staging site should not be mistaken for the live, indexable version.
In the PHP application, keep route handling explicit: a request should resolve to the intended page, and the response should return the right status. Use shared layout code where it helps consistency, but avoid loading the old WordPress application just to serve pages that have already been rebuilt. Include only the code and data each route needs. That can reduce unnecessary work, though actual speed depends on the implementation and hosting.
On a staging copy, walk the URL inventory and check page content, status codes, metadata, canonical links, images and navigation. Test redirect destinations and inspect the sitemap. Check important forms and, for stores, the complete purchase path in a safe test process. Compare page response and load behavior with the old site rather than assuming PHP is faster by default.
Before launch, confirm that the new host can serve the site, that HTTPS works, and that public pages are not blocked by staging controls. Keep the old site and its backup available until the new routes have been checked in production. After the switch, review server errors and not-found requests, then fix broken routes promptly.
Compare search traffic and important landing pages with the baseline you recorded. Watch for sudden clusters of 404 responses, redirect loops, missing page titles or pages that search engines cannot access. A migration can cause normal short-term variation, but missing content or widespread URL errors call for investigation.
Moving off WooCommerce or WordPress may change the cost structure, but count the custom build, hosting, maintenance and any replacement services before calling it a saving. The earlier comparison of custom PHP and WooCommerce costs lays out why platform fees are only one part of that calculation.
BuiltToWinWeb offers hand-coded custom PHP websites and says the source code is handed over to the client. For a migration, the practical test is whether the build follows a documented URL map and passes the checks above. The result should be a site you can maintain, with its established search routes intact—not simply WordPress removed.
Install the WordPress AI Indexing Pack, then test its public routes against firewall and cache rules without weakening protection across the whole site.
Static manifests describe a site; MCP endpoints let compatible clients interact with it. Choose based on what agents need to do and what your application can safely expose.
Expose selected database content through llms.txt, Markdown and MCP without letting new routes collide with your app or reveal private records.