Multi-page website import into Figma is a systematic workflow for converting every page of an existing website — home, about, product, blog, contact, and more — into native, editable Figma design frames. Using the html2design plugin, each page is imported one at a time by copying the page's rendered HTML from DevTools and converting it, producing a complete Figma design file that mirrors the live site and serves as the baseline for redesign work.
Why a Systematic Workflow Matters
Importing a 25-page website into Figma without a plan produces a chaotic file: inconsistently named frames, mismatched canvas widths, shared sections imported multiple times, and no clear way to navigate between pages. Designers can't work effectively in a file that resembles a landfill.
A systematic approach — inventory first, structure before import, shared sections as anchors — produces a clean, navigable Figma file that your team can actually use as a redesign baseline. This guide covers that approach end to end.
Step 1: Build Your Page Inventory
Before opening Figma or DevTools, list every page you need to import. The fastest source of truth is your sitemap.xml. Open it in a browser (usually at /sitemap.xml) and copy the full URL list. Group pages by template type:
- Marketing pages: Home, About, Pricing, Contact, Blog index
- Product pages: Feature pages, landing pages, comparison pages
- Content templates: Blog post, case study, help article (import one representative page per template — they share the same layout)
- Transactional: Sign up, Login, Checkout, Confirmation
- Legal/utility: Privacy, Terms, 404 (low priority — import last if at all)
For content templates (blog posts, case studies), you only need to import one example per template type. The content varies, but the layout — header, sidebar, footer, article container — is the same across all posts. Import the template once, not every post.
Mark your priority order. Marketing pages and high-traffic product pages first. Legal pages and 404s last (or skip them).
Quick inventory trick: Open Chrome DevTools Console on any page and run performance.getEntriesByType('navigation') to see the current page's URL. Then navigate to /sitemap.xml and press Ctrl+A, Ctrl+C to copy all URLs at once for a quick inventory list.
Step 2: Set Up Your Figma File Structure
Before importing a single page, set up the Figma file properly. A good structure makes the finished file usable:
- Create one Figma page per site section — "Marketing", "Product", "Blog Templates", "Auth", "Legal". Avoid one Figma page per web page — that creates too many tabs.
- Add a "Cover" Figma page at the top — a simple site map showing the URL structure. This helps teammates orient themselves when they open the file.
- Add a "Shared" Figma page — where you'll store the nav, footer, and any globally shared sections. Import these first and reference them when reviewing pages for consistency.
Set your canvas to the correct desktop width before importing. Most marketing sites are designed at 1440px or 1280px. Check the live site's max-width by inspecting the main container element in DevTools. If in doubt, use 1440px.
Step 3: Import Shared Sections First
Every page on your site shares at least two elements: the navigation bar and the footer. Import these first — they'll serve as your visual consistency anchors for every subsequent page import.
Import the main nav
Navigate to the home page. Right-click the navigation element → Inspect. Select the <nav> or header element (not the full page). Copy outerHTML. Paste into html2design. Name the result Nav/Desktop/Default and place it on the Shared Figma page.
Also import the mobile nav if it differs — either navigate to a mobile breakpoint by resizing the browser, or find the mobile nav in DevTools and copy it directly.
Import the footer
Scroll to the bottom of the page. Inspect the <footer> element. Copy outerHTML. Convert. Name it Footer/Desktop and place it on the Shared Figma page.
With shared sections in place, you can visually compare them against the nav and footer sections of each page you import to catch inconsistencies (e.g. a page that has a slightly different nav style or a custom footer).
Step 4: Import Pages One at a Time
For each page in your priority order, follow the same sequence:
Set browser viewport to your target width
Open DevTools, click the device toolbar icon (Ctrl+Shift+M), and set the viewport width to your target desktop size (1440px). This ensures the HTML captures the desktop layout, not a responsive intermediate state.
For mobile imports, set to 390px (iPhone 15) or 375px (older standard).
Copy the full page HTML
In DevTools Elements panel, right-click the <body> element → Copy → Copy outerHTML. This captures the full page content.
For very long pages (1000+ lines of HTML), consider copying section by section instead. Select the hero section, convert it, then the features section, then testimonials, etc. Stack them vertically in Figma to reconstruct the page. This approach is slower but produces a cleaner, more organized Figma layer structure.
Convert and name immediately
Paste into html2design and convert. The moment the frame appears on canvas, rename it to the page name: Home, About, Pricing, Blog — Index, Blog — Article Template.
Set the frame width to 1440px in the Figma properties panel to match your target — sometimes the import produces a slightly different width depending on the body element's CSS.
Stack frames on the canvas
Place each new page frame directly below the previous one on the canvas, aligned to the left edge. A vertical stack of page frames makes it easy to scroll through the entire site and compare pages. Leave 200–400px of gap between frames for notes and annotations.
Step 5: Maintain Consistency Across Pages
When importing many pages, small inconsistencies accumulate. Here's how to keep the file coherent:
- Consistent frame names — Use a naming convention and stick to it.
Page / Home,Page / About,Page / Pricing. Avoid one-off names like "hp final" or "new about". - Consistent frame widths — Check each imported frame's width after conversion and set it to 1440px manually if needed.
- Compare nav and footer — After each page import, visually compare its nav and footer against the anchors on your Shared page. Note any differences — these may be intentional (a landing page uses a simplified nav) or bugs in the live site.
- Group by section after import — For pages with many import passes (e.g. a long home page imported section by section), group all the section frames and set them as an Auto Layout frame arranged vertically. This reconstructs the page as a single scrollable design.
Organize as you go: After every 5–6 pages, take 10 minutes to organize the Figma canvas. Align frames, check naming, and add any annotations. It's much faster to stay organized incrementally than to clean up 25 messy frames at the end.
Step 6: Add Figma Page Navigation
A Figma file with 20 page frames is only useful if teammates can navigate it. Add two navigation aids:
- Site map on the Cover page — A simple tree diagram showing the URL structure and which Figma frame corresponds to each URL. Use a text box with the page list and links to the frames.
- Prototype connections — In Figma's Prototype panel, add hotspots to navigation links in your page frames that point to the corresponding destination frames. This lets anyone click through the site as a navigable prototype.
Step 7: Handle Edge Cases
Auth-gated pages
Pages behind login (dashboards, account pages, admin panels) can't be reached by URL-based screenshot tools. With html2design, log into the site normally in your browser, navigate to the page, and copy the HTML from DevTools while logged in. Paste into html2design as usual. Authentication state is irrelevant — you're pasting rendered HTML, not making a request.
Infinite scroll and lazy-loaded content
If a page uses infinite scroll (a feed, a product grid), scroll down in the browser to load the content you want, then copy the outerHTML. The loaded content is now in the DOM and will be included in the copy.
Pages with heavy JavaScript interactions
For pages that rely on JavaScript for rendering (modals, drawers, expanded states), open the interaction in the browser, then copy the HTML. For example, open a navigation mega-menu, and then copy the nav HTML — the expanded state will be captured. Import it as a separate frame: Nav/Desktop/Menu Open.
Large pages that time out
For very large pages (100+ complex elements), full-page import may take 15–30 seconds or time out. Use the section-by-section approach instead: copy the hero, convert, then the features section, convert, and so on. This is more work but is reliable for any page size.
Frequently Asked Questions
Can I import an entire website into Figma at once?
Not in a single operation, but the page-by-page workflow is fast — each page takes under 60 seconds to import. A 20-page site typically takes 3–6 hours total, including organization and naming. That's a fraction of the time it would take to manually recreate even a single page.
How do I handle pages that look different across browsers?
html2design reads the computed styles from whatever browser you use for the import. For consistency, use the same browser (Chrome is recommended) for all page imports. Avoid mixing imports from Chrome and Firefox — subtle rendering differences in computed values can make the Figma file inconsistent.
Should I import mobile and desktop versions of each page?
For a redesign project, yes — import both. Run a desktop import pass (1440px viewport) first, then a mobile pass (390px viewport). Name mobile frames with a suffix: Home — Mobile. Place mobile frames in a separate column to the right of desktop frames on the canvas. See our guide on responsive design to Figma for the full workflow.
Key Takeaways
- ✓ Inventory your pages first — categorize by template type and import one template, not every instance
- ✓ Import nav and footer first as consistency anchors on a Shared Figma page
- ✓ Use a consistent canvas width (1440px desktop) and naming convention across all page frames
- ✓ Auth-gated pages work fine — copy HTML from DevTools while logged in and paste normally
- ✓ A 20-page site takes 3–6 hours with html2design, versus 2–4 weeks manually
Related Articles
The Complete Guide to HTML to Figma Conversion (2026) →
The pillar guide covering every framework, every method, and every use case — all in one place.
How to Import a Website into Figma: Two Methods Compared →
Chrome extension vs HTML code paste — which works for localhost, staging, and auth-gated pages.
Responsive Design to Figma: Converting Breakpoints to Variants →
Capture desktop, tablet, and mobile layouts and combine them into Figma Variants.
Use Case: Legacy Migration →
Rebuild old websites in Figma without starting from scratch. Step-by-step workflow for migrating legacy codebases.
Webflow to Figma: Import Your Webflow Site into Figma →
Section-by-section import from Webflow, capturing interaction states and building a Figma design system.
Try it now
Import your first page in 30 seconds
Copy any page's HTML from DevTools. Paste into html2design. Get a full editable Figma design instantly — no rebuilding from scratch.
Install from Figma Community →$12/mo · $96/yr · Cancel anytime