A TermsFeed AutoTerms legal page returns 404 Not Found most often because nobody published it yet. With pretty permalinks, legal pages live at /termsfeed/<page slug>/, such as /termsfeed/privacy-policy/, where termsfeed is the Legal pages slug in General Settings. WordPress finds each page through its rewrite rules, the list of address patterns it matches every request against.

Open TermsFeed > All Legal Pages, where each published page shows its address as a link above the row actions. Compare that address with the link that fails.

The questionnaire creates the legal page as a draft, and WordPress shows a draft only to logged-in users who edit it, so visitors get 404 Not Found. You see the page while logged in, through the Preview button. Visitors see only published pages, and the footer legal links that the Links to Legal Pages kit prints list only published pages.

The All Legal Pages screen marks a draft. Its Status column shows draft, and the Shortcode column shows "N/A" with the tooltip "Publish page to get shortcode."

Review the page, publish it, and open it as a visitor. Review and publish a new legal page with Edit and Publish WordPress Legal Pages.

  1. Open the legal page and review the generated text.
  2. Click the "Publish" button.
  3. Close every private window, open a new one, and load the address from All Legal Pages.

Cause 2: The rewrite rules have not refreshed

WordPress keeps its rewrite rules until something asks it to rebuild them, so a published legal page returns 404 Not Found while the rules miss its address. The plugin rebuilds the rules on the first admin page you open after activation, and on the next admin page after you change the Legal pages slug. A restored database brings back the rules stored at backup time. A Legal pages slug changed outside the admin, such as with wp option update, keeps the rules of the old slug until WordPress rebuilds them.

Open the address link of a page with the Status publish on the All Legal Pages screen. The address returns 404 Not Found, while your posts and pages open normally.

As the site owner, have WordPress rebuild its rules from the Permalinks screen.

  1. Open Settings > Permalinks in the WordPress admin.
  2. Click the "Save Changes" button without changing anything, which makes WordPress rebuild its rewrite rules.
  3. Close every private window, open a new one, and load the legal page address. A page that still returns 404 Not Found points to another post type with the base termsfeed, a conflict that a rebuild of the rewrite rules keeps.

A developer rebuilds the rules from the command line with WP-CLI.

wp rewrite flush

The Legal pages slug works only with pretty permalinks, so a site on plain permalinks has no /termsfeed/privacy-policy/ address. Links typed with the pretty address then miss the legal page: the web server returns 404 Not Found, or WordPress shows the home page. The legal page itself opens at /?wpautoterms_page=privacy-policy. General Settings warns about plain permalinks with "Your Permalinks structure is set to plain. For this option to work, you need to change your Permalinks structure to post name."

Open Settings > Permalinks, where "Plain" is selected, then TermsFeed > Settings, where the warning shows under "Legal pages slug".

Switch to the "Post name" structure and check the links that change with it. Read how the Legal pages slug works in WordPress Legal Page Settings.

  1. Select "Post name" in Settings > Permalinks and click the "Save Changes" button.
  2. Check your menus and hand-written links, because a new permalink structure changes the address of every post and page on your WordPress website.
  3. Close every private window, open a new one, and load the legal page address.

A link written before you changed a page slug, or the Legal pages slug, points to an address that no longer exists. The plugin does not add a redirect from the old address, so menus, widgets, and links in your content keep the old one. The footer legal links that the Links to Legal Pages kit prints follow the new address by themselves, and so does [wpautoterms page_link="privacy-policy"] after a change of the Legal pages slug.

Compare the failing link with the address above the row actions on the All Legal Pages screen. A different slug, or a different first segment such as termsfeed instead of legal, marks a link written before the change.

Update every link that still carries the old address. Add legal pages to menus and widgets with Add Legal Pages to WordPress Menus.

  1. Update the custom links in Appearance > Menus, or in the navigation block of the Site Editor.
  2. Update the links in posts, pages, and widgets, or replace each one with a page_link shortcode such as [wpautoterms page_link="privacy-policy"], which follows a change of the Legal pages slug.
  3. Point the old address to the new one with the redirect feature of your SEO or redirect plugin, for visitors who saved it.

Cause 5: Another post type or a page uses the base termsfeed

WordPress uses the first rewrite rule that matches an address, so another post type with the base termsfeed takes the legal page addresses when its rules come first. A regular page with the slug termsfeed is a different case. It never hides the legal pages, because WordPress serves the legal pages archive at /termsfeed/ instead of that page. The /termsfeed/<slug>/ rule of the legal pages then catches the addresses of its child pages, which return 404 Not Found.

Deactivate your other plugins one at a time. After each, open Settings > Permalinks to rebuild the rules, then reload the legal page address: the legal page opens once the other plugin that owns the base is off. A developer runs wp rewrite list --match=/termsfeed/privacy-policy/ instead and reads the first rule, whose query names the post type WordPress serves.

For a post type from another plugin, change the Legal pages slug in TermsFeed > Settings to a word nothing else uses, such as legal. Then update the links that used the old address. For a regular page whose child pages fail, give that page another slug instead.

A second legal page of the same type receives a numbered slug such as privacy-policy-2, so links to privacy-policy return 404 Not Found once the older page is in the trash. The second page keeps privacy-policy while it is a draft, and WordPress numbers its slug when you publish it. The plugin never renames a slug itself.

Read the Shortcode column of All Legal Pages, which shows the slug WordPress gave each published legal page, and look for a slug that ends in a number.

Edit the slug of the newer page back to privacy-policy, which WordPress accepts once the older page is in the trash. Check the slug each type of legal page receives in Create a Privacy Policy in WordPress.

A working legal page returns status 200 from its own address, from the footer legal link, and from every menu item that points to it. Open each of those entry points logged out, in a new private window after you close the others.

  1. Open TermsFeed > All Legal Pages and confirm that the Status column shows publish.
  2. Clear the page cache, copy the address above the row actions, close every private window, open a new one, and open the Network tab of DevTools with the Doc filter.
  3. Load the address and confirm status 200 for the page.
  4. Scroll to the footer, click the link to the page, which the Links to Legal Pages kit prints while it is on, and confirm status 200.
  5. Open each menu item that links to the page and confirm that it reaches the same address.