Do these 3 things before closing this tab:
1Scan for outdated or missing drivers - takes under a minute2Repair Windows errors before they cause bigger problems3Fix the driver behind crashes, sound loss and screen glitchesThe most dependable way to preserve Instagram photos on WordPress is to request your account export in JSON, limit it to Posts and the dates you need, then upload the ZIP through Tools → Import → Own Your Memories. That creates native WordPress posts, copies the exported media into your Media Library, and uses the first image in each post as its featured image. Keep the original ZIP and a WordPress backup 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 view rather than a permanent copy, use Meta’s official Meta Embeds plugin and paste a supported public Instagram URL. An embed remains dependent on Instagram, Meta’s APIs, account visibility and future policy changes, so it is a presentation tool—not a substitute for an archive.
As an Amazon Associate I earn from qualifying purchases.
Recommended Free Tools
Choose between a local archive and a live embed
These are different jobs. A local archive turns exported Instagram content into WordPress content that your site stores and can back up. A live embed leaves the post on Instagram and asks WordPress to render it whenever a visitor loads the page.
| Decision point | Local JSON archive | Live Instagram embed |
|---|---|---|
| Ownership | Images are copied into your WordPress Media Library and posts become native WordPress posts. | The content remains on Instagram; WordPress displays it from a public URL. |
| Coverage | Imports exported Posts and their media. The importer does not import Stories, Reels, profile photos or saved items. | Meta Embeds supports public image posts, carousel posts, Reels and profiles. |
| Maintenance | Export and import are a one-time preservation workflow. You still need normal WordPress backups. | Rendering depends on Meta’s oEmbed service, the URL remaining public and plugin/API compatibility. |
| Presentation | Use WordPress templates, categories, search, menus and your own image sizes. | Visitors see an Instagram-rendered card with Instagram’s interaction and attribution. |
For preservation, import the archive first. Add embeds only where a live profile, current interaction or Instagram attribution is useful. You can use both approaches without treating an embed as your only copy.
#1 Best Overall
Prepare before requesting the export
A little preparation prevents an incomplete or unusable import.
- Decide whether you need the entire account or a specific period, such as a game launch, convention season or a particular year.
- Make sure the WordPress site has enough disk space for the ZIP and the extracted images. The export size is account-specific, and no universal size figure is published.
- Confirm that you can log in to the Instagram account and the WordPress administrator account.
- Plan categories and post statuses in advance. For example, you might import everything as drafts, then place posts into categories such as “Screenshots,” “Events” or “Cosplay” after checking them.
- Choose a location outside the WordPress server for the original ZIP. It is your untouched recovery copy if an import is interrupted or you later migrate sites.
- Do not delete existing WordPress media or posts to make room until the archive has been checked and backed up.
The importer requires Instagram’s JSON export. An HTML export may be easier to browse in a browser, but it is not a compatible input for this workflow.
Request an Instagram JSON export
Instagram’s current account-download controls are in Accounts Center. Labels can vary slightly by app version or whether you use a browser, but the documented path is:
- Open Instagram and go to Settings.
- Open Accounts Center.
- Select Your information and permissions.
- Choose Download your information.
- Start a download request and select the Instagram account you want to archive.
- Choose Some of your information if that option is offered, then select Posts. If you need everything, use the broader account selection but expect a larger export and more material to sort.
- Set the date range that matches your archive. A narrow range makes a focused import easier to review; repeat the process later for another period if necessary.
- Set the format to JSON, not HTML. The Own Your Memories documentation states: “Choose JSON format (this importer does not read HTML exports).”
- Submit the request and wait for Instagram’s email or download notification. Download the ZIP to a local drive, verify that it completes, and retain it as your original archive.
The date range and category selection determine what Instagram places in the export. A WordPress importer cannot recover posts that were never included in the ZIP, so check those choices before uploading.
Import the ZIP with Own Your Memories
Own Your Memories is the importer used for this archive workflow. After installing and activating it on the WordPress site, open Tools → Import → Own Your Memories.
Rank #2
- Open the importer from the Tools menu. If WordPress asks you to authorize or install an importer component, complete that prompt before continuing.
- Select the Instagram JSON ZIP you downloaded. Do not upload an HTML export; the importer does not parse it.
- Start the import and allow WordPress time to process the posts and media. Large exports can take longer than a normal post upload, so avoid closing the browser immediately after submitting.
- When the importer presents its options, choose the post status you want. Draft is the safest first pass because it lets you correct captions, dates, categories and visibility before publication.
- Assign categories or map them to your site’s existing taxonomy. Use a consistent category scheme rather than creating a new category for every imported post.
- Complete the import and open several resulting posts in the editor. The plugin creates native WordPress posts rather than merely inserting links.
- Open the Media Library and confirm that the images were added locally. The importer stores imported media there, and the first image in each imported post is used as that post’s featured image.
Import behavior is limited to what the plugin documents. It does not import Instagram Stories, Reels, profile photos or saved items. If those formats matter, retain the Instagram export as an external archive and handle any additional material separately; do not assume an apparently successful Posts import is a complete account clone.
What’s actually slowing this PC down?
Pick the symptom - the matching free tool is one click away.
Review the imported posts before publishing
Use a sample-first review rather than publishing the entire batch immediately. Check an older post, a newer post, a single-image post and a multi-image post so that you see how different records were interpreted.
- Captions: Read the text for missing line breaks, altered character encoding or links that need to be made clickable in WordPress.
- Dates: Confirm that the publication date reflects the Instagram post’s date and that the site’s timezone does not shift a post into the previous or next day.
- Featured images: Verify that the first image is the intended thumbnail. Change it manually when the visual order of a carousel makes another image a better representative.
- Media records: Open several attachment pages and confirm that files load from your own domain rather than a remote Instagram URL.
- Categories and status: Check that your chosen taxonomy was applied and that drafts, private posts or published posts have the status you expected.
- Privacy: Remove or restrict posts that contain personal information, location details or people who did not consent to a public WordPress copy.
- Theme display: View the posts on desktop and mobile. Your theme may crop featured images differently from Instagram’s original presentation.
Only after this sample looks correct should you bulk-edit the remainder and publish. Keep the original ZIP unchanged so that you can compare a questionable post with the source data.
Back up the new archive
Once imported, the archive is part of the WordPress site and has two important components: database records for posts, captions, dates and taxonomy, and image files in the uploads directory. Back up both.
- Run a complete WordPress database backup after the import.
- Back up the WordPress uploads directory, including the imported image files.
- Store a second copy of the original Instagram ZIP away from the web server.
- Record the export date and the Instagram date range in your backup notes.
- Test that a backup can actually be downloaded or restored; a backup that cannot be opened is not a reliable archive.
Repeat an export when you add a substantial new period of Instagram posts. Treat each later ZIP as a dated increment, and review it before importing so that you do not unintentionally create overlapping copies.
The Tool Desk
Outbyte PC Repair FREERepair Windows errors before they cause bigger problemsFix Now →Outbyte Driver Updater FREEScan for outdated or missing drivers - takes under a minuteDriver Scan →Use Meta Embeds when a live Instagram view is the goal
For a public post that should remain visibly connected to Instagram, install Meta’s official Meta Embeds plugin. Its published readme says it supports public Instagram image and carousel posts, Reels and profiles. It uses Meta’s tokenless oEmbed APIs, so the readme states that no app creation, access token or API configuration is required.
The readme lists WordPress 5.9 or later and PHP 7.4 or later as requirements. Check your site’s versions before installation, and update WordPress, PHP and the plugin through your normal maintenance process rather than relying on an old ZIP indefinitely.
Install from the WordPress directory
- In the WordPress dashboard, open Plugins → Add New.
- Search for Meta Embeds.
- Install the plugin published by Meta, activate it, and confirm that your site meets the listed WordPress and PHP versions.
Install from the release ZIP
If the directory search is unavailable, download the release ZIP from the Meta Embeds repository, then use WordPress’s Plugins → Add New → Upload Plugin screen to upload and activate it. Use a release from the repository rather than an unverified repackage.
Add a supported Instagram URL
- Copy the public Instagram image, carousel, Reel or profile URL.
- In the block editor, paste the URL on its own line. Do not wrap it in custom HTML or combine it with other text on that line.
- Save or publish the post and view it while logged out, or in a private browser window, to confirm that a visitor can see it.
An embed is not a local media backup. If the Instagram item becomes private, is deleted, the URL changes, or Meta changes the oEmbed service, the WordPress page can stop rendering even though the page itself still exists.
Quick wins for a faster PC:
Scan for outdated or missing drivers - takes under a minuteDriver Scan →Repair Windows errors before they cause bigger problemsFix Now →Why old Instagram embed instructions stopped working
Older WordPress tutorials often say to paste any Instagram URL into the editor or to configure an old provider endpoint. WordPress’s Instagram embed documentation records that Facebook closed the old oEmbed endpoint and that the legacy block stopped working after October 24, 2020. The general Embeds documentation also describes the endpoint change and the former requirement for a developer account, app ID and authentication token.
Rank #4
Those instructions are historical, not a reliable current setup. Use Meta Embeds for a supported public URL, or import a JSON archive when you need ownership of the files. If a tutorial does not identify its date and still promises that every Instagram URL will embed automatically, treat it as outdated.
Independent reader supportYour contribution helps us test, update, and keep practical guides available for everyone.Troubleshoot the common failure points
The importer rejects the file
Check the extension and the export request. The file must be the ZIP produced from an Instagram export configured as JSON with Posts selected. Request a new export if you selected HTML or downloaded an incomplete file. Keep the ZIP intact instead of extracting and recompressing it unless the importer’s current instructions specifically request that.
Posts import but images do not appear
Open the Media Library and inspect the imported attachment records. If they are absent, confirm that the import finished rather than timing out and that the WordPress uploads directory is writable and has free space. Recheck with a small date range before attempting the full archive again. Do not publish until representative attachments open on the site.
The caption or date looks wrong
Compare the affected post with the source export, then edit the WordPress post directly. Check the site timezone and the imported post’s status. If many posts show the same shift, correct the timezone setting before processing another batch; changing every post individually can introduce further errors.
The first image is a poor thumbnail
This is expected importer behavior: the first image becomes the featured image. Replace the featured image in WordPress for posts where a later carousel frame better represents the entry, while leaving the imported gallery intact.
Best Value
A pasted URL remains a plain link
Confirm that Meta Embeds is active, the URL is on a line by itself, and the Instagram item is public. Check that the site meets WordPress 5.9 and PHP 7.4 requirements. A plain link can also indicate a provider or API response problem; WordPress’s oEmbed system depends on provider discovery and whitelisting rather than copying arbitrary remote HTML.
An embed worked and later disappeared
Test the Instagram URL while logged out. If the source post is private or deleted, an embed cannot display it publicly. If the source remains public, check plugin and WordPress compatibility and review Meta’s current service behavior. Preserve important images locally instead of depending on a live card.
What WordPress is doing technically
WordPress uses oEmbed to request a provider’s structured representation of a URL instead of copying raw HTML from the media host. The WordPress oEmbed handbook explains that providers can be registered with wp_oembed_add_provider(), while discovery and provider whitelisting determine which URLs WordPress accepts.
This explains several troubleshooting symptoms. A URL can be valid in a browser but produce only a link if no registered provider accepts it, if discovery fails, or if the provider returns an error. Meta Embeds registers the supported provider path for current Instagram content; the JSON importer avoids oEmbed entirely by creating WordPress posts and local attachment records.
A practical workflow for a durable archive
- Define the scope: choose the account, Posts category and date range you need.
- Export in JSON: request the archive through Accounts Center and retain the original ZIP.
- Import as drafts: use Tools → Import → Own Your Memories and let it create native posts and local media.
- Sample-review: inspect captions, dates, featured images, categories, attachment URLs and privacy before publishing.
- Back up: save the database, uploads directory and original ZIP in separate locations.
- Add selective embeds: use Meta Embeds only for public content where live Instagram presentation adds value.
- Recheck periodically: after WordPress, PHP or plugin updates, verify that important embeds still render and that your local archive remains readable.
This division keeps preservation and presentation separate. Your WordPress database and uploads remain the durable copy, while embeds provide an optional live window into Instagram’s current service.
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.




