Remove "attachment" pages for WordPress media. Improve SEO and prevent conflicts between page and image permalinks.
|Author:||Johannes Siipola (profile at wordpress.org)|
|WordPress version required:||5.0|
|WordPress version tested:||5.9|
|Added to WordPress repository:||31-12-2020|
|Total downloads:||2 675|
Click to start download
Completely disable “attachment” pages created by WordPress.
By default, WordPress creates a page for each of your attachments. This is can be undesirable because of two reasons:
Search engine optimization
Attachment pages don’t have any content, except an image, so they provide little value and can negatively affect your SEO.
Attachment pages can accidentally reserve slugs on your site. Let’s say you upload an image named
contact.jpeg, an attachment page
https://example.com/contact is automatically created. If you then try to create a page named Contact, the URL for that page will be
https://example.com/contact-2 which isn’t that great.
How it works
This plugin works by automatically setting all attachment slugs to an unique id, so they won’t conflict with your pages. If an attachment page is accessed, the plugin will set a 404 status code and display the “page not found” template.
You can also mangle any existing attachment slugs so they won’t cause any issues in the future.
Special thanks to Greg Schoppe for his research and inspiration that helped a lot with developing this plugin.
Support the plugin
If you are interested, you can also check out my other WordPress plugins:
Go to the Settings ▸ Disable Media Pages ▸ Mangle existing slugs. This will show you a wizard to mangle existing attachment slugs.
First of all, not everyone uses Yoast SEO. More importantly, while Yoast SEO can fix the duplicate content issue, it does not help with issue of media files reserving slugs for pages.
Instead of displaying a 404 HTTP error, some people recommend you to redirect attachment pages to the parent page instead. I think this can be a good short-term solution if the attachment pages have been indexed by Google and you want to preserve SEO ranking for these URLs. There’s a plenty of plugins on the plugin directory that let you to do that. In my opinion returning the 404 error is the correct long-term solution and if you are launching a new site, it’s best to simply disable these pages so they won’t ever end up in Google index.
The unique id is an UUIDv4, without dashes.
Yes, this functionality is available in version 1.1.0. The attachment slug restoration tool allows you to restore the attachment slugs back to ones based on the attachment title.
Yes, check out the GitHub repository.
- Fix: Fix typo
- Feature: Improved plugin code structure
- Feature: Add donate link
- Fix: Readme update
- Fix: Fix issue where the plugin was unable to mangle slugs that contained UUID along with some other text
- Fix: Bump supported WordPress version to 5.9
- Fix: Readme updates
- Fix: Add automated test for slug restore functionality
- Fix: Remove debugging statements
- Fix: Fix typo in readme
- Fix: Minor fix to the icon
- Feature: Add a tool for restoring media slugs back to the original ones
- Feature: Add status page for the plugin which tells you if you have attachments without unique ids
- Fix: Add menu for the plugin under Settings on the WordPress dashboard
- Fix: Update plugin icon
- Fix: Bump supported WordPress version to 5.8
- Fix: Update dependencies
- Fix: Update dependencies
- Fix: Update FAQ
- Fix: Tweak icon
- Fix: Fix issue with deployment
- Fix: Bump tested up to @ 5.7
- Fix: Add acceptance tests
- Change: Add icon
- Fix: Change required WordPress version correctly to 5.0
- Fix: Optimize autoloader
- Change: Release on WordPress plugin directory
- Change: Changes to internal plugin structure
- Fix: Make plugin translatable
- Fix: WordPress 5.6 compatibility, thanks @tnottu
- Initial release