The most durable way to archive Instagram photos on WordPress is to download your Instagram account export in JSON format, choose Posts and the date range you need, then upload the ZIP through Tools → Import → Own Your Memories. The importer creates native WordPress posts, stores the images in your Media Library, and uses the first image in each post as its featured image. Keep a copy of the original ZIP and back up your WordPress database and uploads directory after the import.
Antihost offers managed WordPress hosting with free migration, one-click staging and a 14-day free trial.
If you only need a current Instagram post to appear on a page, use Meta’s official Meta Embeds plugin instead. That is a live embed, not an archive: the content remains on Instagram and depends on Meta’s service and policies.
As an Amazon Associate I earn from qualifying purchases.
Do these 3 things before closing this tab:
1Repair Windows errors before they cause bigger problems2Scan for outdated or missing drivers - takes under a minute3Clear out junk files and repair common Windows errorsChoose between a local archive and a live embed
These two approaches solve different problems. A local archive copies the export into your own WordPress database and uploads directory. A live embed displays a public Instagram URL while the media remains hosted by Meta.
| Criterion | Local archive with Own Your Memories | Live display with Meta Embeds |
|---|---|---|
| Ownership | Posts and imported media are stored locally in WordPress. You control the WordPress copies and your backups. | The Instagram content stays on Meta’s service. WordPress renders it from the public URL. |
| Coverage | Imports the Posts selected in your Instagram data export. Stories, Reels, profile photos and saved items are not imported. | Supports public Instagram image posts, carousel posts, Reels and profiles. |
| Maintenance | Usually a one-time export and import, followed by normal WordPress backup and media maintenance. | Depends on Meta’s oEmbed APIs, Instagram visibility and plugin compatibility. A policy or endpoint change can affect the display. |
| Presentation | Native WordPress posts that you can edit, categorize and feature in your site’s own templates. | An Instagram-rendered card or profile display that preserves the live social context and interaction. |
| Best use | Preservation, migration, a searchable site archive or a collection you want to retain independently of Instagram. | A campaign page, portfolio or article that needs a current public post and a link back to Instagram. |
For long-term preservation, import the archive first. Add live embeds only where current attribution or Instagram interaction is useful.
#1 Best Overall
- Easily store and access 2TB to content on the go with the Seagate Portable Drive, a USB external hard drive
- Designed to work with Windows or Mac computers, this external hard drive makes backup a snap just drag and drop
- To get set up, connect the portable hard drive to a computer for automatic recognition no software required
- This USB drive provides plug and play simplicity with the included 18 inch USB 3.0 cable
- The available storage capacity may vary.
Prepare the Instagram export
Use the current Accounts Center path
Instagram’s export request is made from the Accounts Center, not from the WordPress dashboard. In the Instagram app or website, open:
- Settings
- Accounts Center
- Your information and permissions
- Download your information
Request an export in JSON format. Own Your Memories explicitly states: “Choose JSON format (this importer does not read HTML exports).” An HTML export can be useful for browsing the account manually, but it is not a file this importer can parse.
Limit the export to what you need
When Instagram asks what to include, select Posts and set the date range you want to preserve. A date-limited export makes it easier to test a small batch before importing a large historical collection and prevents unrelated account data from entering the workflow. The importer’s documented workflow is based on the Posts data in that JSON export.
Download and protect the ZIP
Instagram sends an email when the export is ready. Download the ZIP file and retain the untouched original in separate storage. That file is your source archive if you later rebuild the site, repeat the import with a different date range or discover that a caption or date needs correction.
- Do not request HTML if Own Your Memories is your intended importer.
- Record the account and date range used for the export.
- Keep enough disk space in WordPress for the imported images and generated thumbnails.
- Make a current WordPress backup before a large import.
Import the archive into WordPress
1. Install the importer
Install Own Your Memories from the WordPress plugin directory, then activate it. Its documentation and importer are available at the Own Your Memories plugin page.
2. Open the importer
In the WordPress administration area, go to Tools → Import → Own Your Memories. This is the importer’s documented location; it is separate from the ordinary WordPress post editor and from Instagram’s export screen.
3. Upload the JSON export ZIP
Choose the ZIP downloaded from Instagram and upload it. The ZIP must contain the JSON export, not an HTML export. Let WordPress finish processing before navigating away. The importer reads the post records and their associated media, then creates WordPress content from them.
Rank #2
- Easily store and access 5TB of content on the go with the Seagate portable drive, a USB external hard Drive
- Designed to work with Windows or Mac computers, this external hard drive makes backup a snap just drag and drop
- To get set up, connect the portable hard drive to a computer for automatic recognition software required
- This USB drive provides plug and play simplicity with the included 18 inch USB 3.0 cable
- The available storage capacity may vary.
4. Inspect the generated posts
Own Your Memories creates native WordPress posts. For each imported post, review:
- the caption text and its formatting;
- the original post date;
- the images and their order;
- the assigned status, such as draft or published;
- categories and other taxonomy choices; and
- the featured image.
The first image in each imported post is used as its featured image. All imported media is stored in the WordPress Media Library, so confirm that the files appear there before publishing the posts.
5. Publish in controlled batches
For a large account, review a small sample first. Open several posts from different dates and with different image counts, confirm that captions and dates are sensible, and check the Media Library entries. Once the sample is correct, assign the desired status and categories to the remaining posts and publish them according to your site’s editorial plan.
What the import preserves—and what it cannot
The importer is an archive of Instagram posts, not a complete clone of an Instagram account. Its documented output is:
- native WordPress posts based on the Posts data in the export;
- local copies of the imported media in the WordPress Media Library; and
- the first image of each post selected as that post’s featured image.
The following are explicitly outside the importer’s scope:
- Instagram Stories;
- Reels;
- profile photos; and
- saved items.
If those materials matter, preserve them separately using the original files or another documented export process. Do not assume that selecting a broad Instagram date range will make them appear as WordPress posts.
Post-import verification checklist
Run this check before treating the WordPress copy as your authoritative archive:
Rank #3
- Easily store and access 1TB to content on the go with the Seagate Portable Drive, a USB external hard drive.Specific uses: Personal
- Designed to work with Windows or Mac computers, this external hard drive makes backup a snap just drag and drop. Reformatting may be required for Mac
- To get set up, connect the portable hard drive to a computer for automatic recognition no software required
- This USB drive provides plug and play simplicity with the included 18 inch USB 3.0 cable
- The available storage capacity may vary.
- Open posts from the beginning, middle and end of the selected date range.
- Compare captions with the Instagram export and look for missing line breaks, mentions or hashtags.
- Check that the displayed date matches the intended Instagram post date.
- Open each post’s Media Library attachments and verify that images load at their expected sizes.
- Confirm the first image is the desired featured image; change it when a different crop or image better represents the post.
- Review categories, visibility and publication status before making the archive public.
- Check image URLs and page links on the front end, including mobile layouts.
- Back up the WordPress database and uploads directory after the import, and keep the original Instagram ZIP separately.
Privacy deserves a deliberate decision. An Instagram account may have been public while the WordPress archive is private, or vice versa. Set each post’s visibility and your Media Library access rules to match the audience you intend to serve.
Use Meta Embeds for a live Instagram post
When preservation is not the goal, Meta’s official Meta Embeds plugin provides the current WordPress route for public Instagram content. Its published readme lists support for public image and carousel posts, Reels and profiles. It uses Meta’s tokenless oEmbed APIs, so the readme says no app creation, access token or API configuration is required: Meta Embeds readme.
Check the WordPress and PHP requirements
The published readme lists WordPress 5.9 or later and PHP 7.4 or later. Verify your site’s versions before troubleshooting an embed. A site below either requirement should be updated or evaluated before relying on this plugin.
Install the plugin
You can install it by searching for Meta Embeds under Plugins → Add New, or download the release ZIP from the Meta Embeds repository and upload it through WordPress’s plugin installer.
The Tool Desk
Outbyte PC Repair FREEClear out junk files and repair common Windows errorsFree Scan →Outbyte Driver Updater FREEFix the driver behind crashes, sound loss and screen glitchesFind Drivers →Insert a supported URL
After activation, paste the public Instagram URL on its own line in the WordPress editor. The plugin registers the provider and renders the supported URL as an embed. A live embed should be treated as a reference to Instagram, not as a second copy of the image in your Media Library.
Understand the dependency
An embed can stop rendering if a post becomes private, is deleted, the URL is unsupported or Meta changes its oEmbed behavior. The page may then show a plain link or an error even though the WordPress post itself is still present. For material that must survive an account change or a provider policy change, keep a local archive instead.
Why older Instagram embed instructions fail
Many older tutorials tell you to paste an Instagram URL into the classic WordPress Instagram block and expect it to work automatically. WordPress’s current documentation records that Facebook closed the old oEmbed endpoint and that the legacy block stopped working after October 24, 2020: Instagram embed documentation.
Rank #4
- Easily store and access 4TB of content on the go with the Seagate Portable Drive, a USB external hard drive.Specific uses: Personal
- Designed to work with Windows or Mac computers, this external hard drive makes backup a snap just drag and drop
- To get set up, connect the portable hard drive to a computer for automatic recognition no software required
- This USB drive provides plug and play simplicity with the included 18 inch USB 3.0 cable
- The available storage capacity may vary.
The general WordPress Embeds documentation also describes the endpoint change and the older requirement for a developer account, app ID and authentication token. Those historical requirements should not be presented as the current, simple setup for a new site. Use Meta Embeds for the documented current route, and date any legacy instructions if you must maintain an old site.
What’s actually slowing this PC down?
Pick the symptom - the matching free tool is one click away.
Troubleshoot an import or embed
The importer rejects the file
First confirm that the export was requested as JSON, not HTML. Re-download the original ZIP from Instagram if the download was interrupted, and upload the ZIP through Tools → Import → Own Your Memories. If you selected the wrong format, request a new export; changing the file extension does not convert HTML data into the JSON structure the importer expects.
Posts exist but an image is missing
Open the post’s Media Library attachments and compare them with the files in the retained Instagram ZIP. Check that the import completed and that the post is using the intended first image as its featured image. If the archive itself lacks a file, the WordPress importer cannot recreate it from that ZIP; preserve the original image separately and add it to the Media Library when you have it.
Captions, dates or categories need correction
Treat the imported entries as ordinary WordPress posts. Edit the caption, date, status or category in the post editor, then recheck the front-end display. Keep a note of manual corrections so a future re-import does not silently overwrite your editorial decisions.
The Instagram URL displays as plain text
For a live embed, confirm that Meta Embeds is active, the URL is public and supported, and the URL occupies its own line in the editor. Check that the site meets WordPress 5.9+ and PHP 7.4+ as listed in the plugin readme. If the post is private or the provider cannot resolve the URL, use a local import for preservation rather than repeatedly retrying the embed.
Quick wins for a faster PC:
Repair Windows errors before they cause bigger problemsFix Now →Fix the driver behind crashes, sound loss and screen glitchesFind Drivers →Clear out junk files and repair common Windows errorsFree Scan →An old Instagram block stopped working
That behavior is expected for the legacy endpoint after October 24, 2020. Replace the old block workflow with Meta Embeds for supported public URLs, or import the account’s Posts export when you need local ownership.
Independent reader supportYour contribution helps us test, update, and keep practical guides available for everyone.How oEmbed fits into WordPress
WordPress’s developer handbook explains that oEmbed lets WordPress request an embed representation from a media provider instead of copying the provider’s raw HTML into your page. Providers can be registered with wp_oembed_add_provider(), while discovery and provider whitelisting determine which content WordPress accepts: WordPress oEmbed handbook.
Best Value
- [Upgraded Version] - This external hard drive features a mirrored logo stripe combined with a striped anti-slip design, and the rounded corners of the casing make it easier to grip. The stripes also have a heat dissipation function, ensuring stable and fast data transfer.
- 【Ultra-thin and quiet】 - The motherboard adopts JMicron 578 noise-free solution, giving you a quiet working environment. Lightweight and portable size designed to fit in your pocket for easy portability.
- 【Ultra-Fast Data Transfers】 - Pairing this external hard drive with JMicron 578 solution USB 3.0 and USB 2.0 interfaces enables blazing-fast data transfer. It boasts theoretical read speeds of up to 125MB/s and write speeds of up to 103MB/s.
- 【Plug and Play】 - With no software to install, just plug it in and the drive is ready to use.The hard disk chip is wrapped with an aluminum anti-interference layer to increase heat dissipation and protect data.
- 【What You Get】 - 1 x Portable Hard Drive, 1 x USB 3.0 Cable, 1 x User Manual, Gift-type shell packaging ,Three-year manufacturer's warranty and free technical support services.
This explains the difference between the two workflows. Own Your Memories reads a structured JSON export and creates local posts and attachments. Meta Embeds registers Instagram as an oEmbed provider and asks Meta to render a supported public URL. If a URL becomes a plain link, the failure is usually in provider discovery, URL support, visibility or the external endpoint—not in the HTML of the WordPress post.
Back up and maintain the archive
Once imported, the archive is part of your WordPress content. Back up both the database, which contains post records and captions, and the uploads directory, which contains the imported media. Keep the original Instagram ZIP outside the WordPress installation as an independent source copy.
Free tools Windows power users keep installed
One-click scans. No signup required.
Review the archive after WordPress, PHP or plugin updates. Recheck captions, dates, featured images, image URLs and privacy settings when you change themes or media-handling plugins. For live embeds, check Meta and WordPress compatibility before a major release because endpoint and policy behavior can change even when your page content has not.
Which workflow should you use?
You are closing or reducing an Instagram presence
Request a JSON export, import the Posts into WordPress and preserve the ZIP. Publish the resulting native posts only after checking privacy, captions and dates. This gives the site a copy that does not rely on Instagram remaining available.
You are building a portfolio or campaign page
Use Meta Embeds for selected public posts, carousels, Reels or a profile when the live Instagram context matters. Keep local copies of any images that are legally and editorially important to retain, because an embed alone is not an archive.
You need both preservation and social context
Import the historical Posts first, then add live embeds only to pages where current interaction is useful. Label the distinction in your editorial workflow so a future editor knows which content is a local WordPress record and which is a provider-dependent display.
Recommended Free Tools
Quick Recap
Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.




