Skip to content

Import a blog from any CMS with smart copy

Last updated: January 5, 2026

Available with any of the following subscriptions, except where noted:

To migrate your existing blog content into HubSpot, all you need is the URL of a live post.

The smart copy feature analyzes your blog post template to identify your blog post titles, authors, content, and tags. After your entire blog is scanned, you'll confirm the mappings for these properties, then import your existing posts into a new HubSpot blog.

Before you get started

Before you use the smart copy feature, make sure you understand any required setup, as well as the feature’s limitations and the potential consequences of using it.

Permissions required The following permissions are required:

Understand limitations & considerations

  • When you create a HubSpot account, a default blog is added that can be used to import blog posts. You can also create a new blog or customize the default blog in your blog settings.
  • To import blog posts, you'll provide the URL of an existing blog post. For best results, use a post with a unique title, featured image, and opening paragraph to make field mapping easier.
  • The smart copy feature isn't compatible with blog posts that include a hashtag in the URL structure (e.g., www.exampleblog.com#tag).
  • The smart copy feature doesn't support blogs hosted on the following domains: facebook.com, amazon.com, google.com, wikipedia.org, twitter.com, medium.com, ikea.com, hubapi.com, themindbodyspiritstore.com, wwe.com.
  • The smart copy feature doesn't support dot-separated date formats (e.g., 09.15.2020). Supported date formats include, but aren't limited to:
    • YYYY-MM-DD (2022-03-15)
    • YYYYMMDD (20220315)
    • MM/DD/YYYY (03/15/2022)
    • DD-MM-YYYY HH:MM:SS (15-03-2022 12:06:32)
    • DD Mon YYYY (15 Mar 2022)
    • Month DD YYYY HH:MM (March 15 2022 12:06)

Please note: for / separated dates, the locale set in the HTML determines whether a date format is considered valid. For example, for a page using the parameter <html lang="en-GB"> (Great Britain), DD/MM/YYYY would be accepted, but MM/DD/YYYY would not. 

  • If you're importing a WordPress blog, use the WordPress Connect feature instead.
  • Each import supports up to 400 blog posts. You can repeat the import process multiple times for the same scan. 

Set up the import

  1. In your HubSpot account, click the settings settings icon in the top navigation bar.
  2. In the left sidebar menu, navigate to Content Blog.
  3. Click the Current view dropdown menu and select Import blog.

  1. Click the Start new import dropdown menu and select Blog posts.
  2. Select the Smart copy option, then click Next.
  3. Enter the URL of the blog's listing page in the Blog homepage field.

Please note: if some posts aren't imported to HubSpot, repeat this process and leave the Blog homepage field blank. This will allow the blog importer tool to crawl more pages to find all your blog content. 

  1. Enter the URL of one of the blog's recent posts in the Recent blog post field. If there's an issue with the URL, you may see one of these errors
  2. Click the Which blog platform are you currently using? dropdown menu and select the blog platform. If you don't know which platform hosts your blog, select I am not sure
  3. Click the HubSpot blog dropdown menu and select the blog where the imported posts will be hosted. If you need to create a new blog, click Create new blog instead. Learn more about creating a blog in HubSpot
  4. In the bottom right, click Copy blog posts. The import process can take some time, depending on the amount of information being imported. You'll receive an email to confirm the scan is complete.
  5. While the blog posts are being retrieved, the import status will update to: Scan in progress.

Review blog post mappings

After the tool finishes scanning the blog posts, the import status will update to: Scan completed. You can then review the posts included in the scan and complete the import.

If the import has any errors or hits the limit of 10,800 pages, you'll see details about your import in the Status column. To import more than 10,800 pages with the blog importer tool, import an XML file instead.

  1. Navigate back to the blog import tool:
    • In your HubSpot account, click the settings settings icon in the top navigation bar.
    • In the left sidebar menu, navigate to Content > Blog.
    • Click the Current view dropdown menu and select Import blog.
  2. Click Review results.
  3. Click Start mapping in the bottom right. The smart copy tool will suggest any field mappings it can find, based on the content of your live blog post.
  4. For each field, select the correct value from those listed or click Find the [field] with a CSS selector:
    • Title: select the title of the blog post. This is a required field.
    • Author: select the author of the blog post. This is a required field. If you prefer to not display your blog post authors, you can select Author isn't displayed, use "Admin" instead. You can customize this default value before you import your posts.
    • Publish date: select the publish date of the blog post. This is a required field. If you prefer to not display your blog post publish date, you can select Publish date isn't displayed, use [today's date] instead. You can customize this default value before you import your posts.
    • Featured image: the tool will identify any images in your blog post body that might be the featured image. Select the featured image for this blog post to tell the smart copy tool where to locate the featured image for the rest of your posts. To avoid importing featured images for your blog posts, select Featured image isn't displayed, don't import it.
    • Post body: the tool will display a preview of the post body. If the displayed text isn't correct, click No, see another choice. This field is required. 
    • Categories/Tags: select the categories or tags applied to this blog post. If you don't want to import the categories or tags of this blog post, select Category/tag isn't displayed, don't import it.
  5. To scan a different blog post as the source for your blog import, select Change URL and enter a new blog post URL. This will restart the field mapping process.
  6. When finished, click Next. You'll be directed to review the blog posts for import.

Troubleshoot mappings

If the blog import tool doesn't map parts of your blog post content correctly, you can tell the smart copy feature exactly where to locate the information on the live blog post. 

The instructions below document how to find the CSS selector on your blog post in a Chrome browser. For instructions on Safari, Firefox, or any other web browser, see their respective developers documentation.

  1. Navigate to the URL of the live blog post you submitted during the Import process.
  2. Right-click your cursor directly on the blog post, then select Inspect element.

  1. In the top left, click the selector arrow to separate a specific element on the page.
  2. Click the blog post title, author, publish date, featured image, post body, or categories/tags on the live blog post to inspect this element. You'll see this element highlighted on the live page and within the Elements panel.
  3. Right click the highlighted element in the inspector, then select Copy Copy selector. This automatically copies the CSS selector to your clipboard.

  1. Within HubSpot, paste this selector in the Add CSS and or HTML element field. Then click Next to continue your mappings.

Learn more about identifying CSS selectors in this Community post with additional details and examples.

Finish the import

After mappings are completed, the blog import status will change to Preparing posts for import. You can now review and complete the blog import. 

  1. Navigate back to the blog import tool:
    • In your HubSpot account, click the settings settings icon in the top navigation bar.
    • In the left sidebar menu, navigate to Content > Blog.
    • Click the Current view dropdown menu and select Import blog.
  2. Click Review results.
  3. To preview a specific post, click Preview to view the page and see a listing of all values the tool identified for that post.
  4. If any default values were applied to your blog post features, you'll see a note that reads: Default values used to complete mappings.
    • To review the default values, click Change default values.
    • In the right panel, review the default values for any blog features that couldn't be mapped for every blog post. In this example, there's a default value populating for the blog Author and blog Publish date.
    • Enter the values in the text field to the desired values.
    • Click Save to apply these values to all blog posts.
  5. By default, none of the blog posts are selected for the import. Select the checkbox on the left of any blog posts you want to include in your import.
  6. When finished, click Import.
  7. In the dialog box, select whether to import these blog posts as drafts or as live-published posts.
  8. To overwrite any existing content, select the Overwrite any existing content with imported content checkbox.
  9. Then click Save.
  10. While your blog posts are being imported, the import status will update to Import in progress.
    • Once the import is complete, the status will update to Import completed.
    • If there are any errors during the import process, the status will update to Import succeeded with some errors. You can review the details by clicking More View details.

Next steps: set up the blog in HubSpot

After you've imported your blog posts, finish setting up the blog in HubSpot:

Was this article helpful?
This form is used for documentation feedback only. Learn how to get help with HubSpot.