Home How it works Examples Pricing FAQ Contacts

Restoring sites from archive.org

A complete working copy of a site from the web archive in a few clicks

Enter 1996 to use the earliest available version.
For the best result, specify the exact time.

Sign in to continue to WayBacKₐtor Sign in

Loading...

Analysis in progress...

How to restore a website from Archive.org

  1. Specify the domain:
    Enter the domain in any format in the order form above, for example (http://domain.com, www.domain.com, domain.com).
  2. Set the start date (Date START):
    Specify the start date for recovery in formats ranging from a year (2023), to an exact timestamp (2023.01.11 15:40:55 or 20230111154055). To use the earliest available snapshot from Archive.org, enter 1900.
  3. Set the end date (Date END):
    For the best result, provide the end date with precise timing to match the last working snapshot of the main page. You can find this date in the Archive.org snapshot URL.
  4. Specify the protocol and subdomain:
    Clarify whether the site uses https and http, and whether www is included by using the switches in the form.
  5. Wait for analysis:
    The tool generates a preview screenshot of the homepage assembled by WayBacKator, and shows the number of HTML and media URLs. If the 100,000 URL limit is exceeded, narrow the date range. If Archive.org is unavailable, try again later.
  6. Confirm and download:
    After confirmation, wait for a ZIP archive with the working site copy and instructions for deploying it on a server.

Examples of restored websites

Instructions for deployment on local, hosting, or server

PHP, PHP-FPM >= 7.4 (default), Nginx, or Apache.

You can host multiple domains on one server by copying only the domain folders into .domains and updating index.php if the version changes.

If you have access to a level above the root, you can move .domains there and rename it to domains for convenience.

The .domains folder and the .htaccess file may be hidden. Use your OS tools to display hidden files.

The file .domains/config.php contains settings for domains in subfolders and debug mode:

  • domains-as-subfolders: lets you run websites from subfolders.
  • title: sets the title on the technical domain homepage.
  • home: shows a link back to the list of domains.
  • plugs: defines placeholders for missing img/css/js files.
  • debug: 0 or 1 to enable debug mode.
  • css: adds CSS URLs to all domains, for example /css/layout.css,https://cdn.jsdelivr.net/npm/bootstrap@5.3.2/dist/css/bootstrap.min.css. Add files to edits/public in the domain folder.
  • js: adds JS URLs to all domains, for example /js/script.js,async:https://cdn.jsdelivr.net/npm/bootstrap@5.3.2/dist/js/bootstrap.bundle.min.js. Add files to edits/public in the domain folder.

The file .domains/domain.com/config.php contains settings for a specific domain:

  • protocol: the domain protocol.
  • www: 0 or 1 to define whether www is used.
  • plugs: defines placeholders for missing img/css/js files.
  • gtmid: inserts the Googletag script at startup.
  • css: adds CSS URLs, for example /css/layout.css,https://cdn.jsdelivr.net/npm/bootstrap@5.3.2/dist/css/bootstrap.min.css. Add files to edits/public.
  • js: adds JS URLs, for example /js/script.js,async:https://cdn.jsdelivr.net/npm/bootstrap@5.3.2/dist/js/bootstrap.bundle.min.js. Add files to edits/public.

If you want to modify existing pages or add new ones, do it in this folder and leave the public folder untouched.

If added files have no extension or use a non-standard one, place metadata in the meta folder.

The .domains/domain.com/plugs folder is used for custom placeholders for missing img/css/js files.

The .domains/domain.com/404 folder contains redirects for missing URLs. You can add your own redirects there.

Add the following configuration to the appropriate http context, or create a file wbktor.conf in /etc/nginx/conf.d/ with the following content:

server {
    listen 0.0.0.0:80;
    server_name _
    #    ~^wbk\. # use the subdomain `wbk.` for local testing. DO NOT USE IN PRODUCTION!!!
    ;
    root /var/www/wbktor/public;

    index index.php;
    server_tokens off;
    error_page 404 = /index.php;

    location ~ \.php$ {
        include fastcgi_params;
        client_max_body_size 100M;
        fastcgi_split_path_info ^(.+?\.php)(|/.*)$;
        fastcgi_param SCRIPT_FILENAME $document_root/$fastcgi_script_name;

        # Uncomment and specify your FastCGI server call
        #fastcgi_pass unix:/path/to/php.socket;
        #fastcgi_pass 127.0.0.1:9000;
        #fastcgi_pass upstream-php-alias;

        fastcgi_param HTTP_HOST $host;
        fastcgi_param HTTP_X_REAL_IP $remote_addr;
        fastcgi_param HTTP_X_FORWARDED_FOR $proxy_add_x_forwarded_for;
        fastcgi_param HTTP_X_FORWARDED_PROTO $scheme;
    }

    location / {
        try_files $uri $uri/ /index.php$is_args$args;
    }
}

Comment out the default server block in nginx.conf.

If you use CloudFlare, add the following directives to the http context:

set_real_ip_from 103.21.244.0/22;
set_real_ip_from 103.22.200.0/22;
set_real_ip_from 103.31.4.0/22;
set_real_ip_from 104.16.0.0/12;
set_real_ip_from 108.162.192.0/18;
set_real_ip_from 131.0.72.0/22;
set_real_ip_from 141.101.64.0/18;
set_real_ip_from 162.158.0.0/15;
set_real_ip_from 172.64.0.0/13;
set_real_ip_from 173.245.48.0/20;
set_real_ip_from 188.114.96.0/20;
set_real_ip_from 190.93.240.0/20;
set_real_ip_from 197.234.240.0/22;
set_real_ip_from 198.41.128.0/17;
set_real_ip_from 2400:cb00::/32;
set_real_ip_from 2606:4700::/32;
set_real_ip_from 2803:f800::/32;
set_real_ip_from 2405:b500::/32;
set_real_ip_from 2405:8100::/32;
set_real_ip_from 2c0f:f248::/32;
set_real_ip_from 2a06:98c0::/29;
#real_ip_header CF-Connecting-IP;
real_ip_header X-Forwarded-For;

Make sure the Apache mod_rewrite module is enabled in the httpd.conf file:

LoadModule rewrite_module modules/mod_rewrite.so

Also upload the .htaccess file from the archive to the site root.

To run a site on another domain, rename the domain folder inside .domains and update canonical and robots.txt accordingly.

Follow these steps to set up XAMPP and deploy your site:

  1. Download and install XAMPP: Open the XAMPP project page, download XAMPP, and keep only the default PHP and Apache settings during installation.
  2. Create a folder for the domain: Inside \xampp\htdocs, create a folder for the domain or technical domain, for example wbk.list) to run sites in subfolders, then unpack the archive there.
  3. Update Apache virtual hosts configuration: In the file \xampp\apache\conf\extra\httpd-vhosts.conf, add the following lines to configure virtual hosts for your domains:
    <VirtualHost *:80>
        ServerName wbk.list
        DocumentRoot "C:/xampp/htdocs/wbk.list"
        <Directory "C:/xampp/htdocs/wbk.list">
            Options -Indexes FollowSymLinks
            AllowOverride All
            Require all granted
        </Directory>
    </VirtualHost>
    <VirtualHost *:80>
        ServerName wbk.domain.com
        DocumentRoot "C:/xampp/htdocs/domain.com"
        <Directory "C:/xampp/htdocs/domain.com">
            Options -Indexes FollowSymLinks
            AllowOverride All
            Require all granted
        </Directory>
    </VirtualHost>
  4. Update the hosts file: In the file C:\Windows\System32\drivers\etc\hosts, add the following domains:
    127.0.0.1    wbk.list
    127.0.0.1    domain.com
  5. Access your site: Open your browser and go to http://localhost/wbk.list | http://localhost/domain.com to view your site.
  6. Further documentation: For more details, see the official XAMPP documentation:

Restore via Telegram bot

Meet @wbktor_bot

Prefer Telegram? Place your order in chat with our bot. It uses the same engine and pricing as the web form, guides you step by step, and sends both the analysis screenshot and the final archive directly in chat.

Transparent and affordable pricing

Extended volume

+$20

from 100,000 to 200,000 URLs

Above the limit

+$10

for each additional 100,000 URLs

You always see the final price after the free analysis and before payment

Answers to popular questions

You will receive a deployment-ready ZIP archive with a working copy of the site: HTML, CSS, JS, images, and documents. The archive also includes our handler that lets the site run on modern PHP hosting without a database.

That is not a problem. You can specify only the year, for example 2015 , in the start date field, and we will find the earliest available version from that year. For the best result, we recommend finding the needed snapshot on archive.org and copying the exact date from the address bar.

Yes. We work only with publicly accessible data stored in the non-profit Internet Archive library. The service only automates collecting and packaging that data into a convenient format.