<?php /** * Plugin Name: Site Assistant * Description: Provides guided onboarding and a Site Assistant in the WordPress admin. * Version: 1.0.0 * Update URI: false */ define('EXTENDIFY_PARTNER_ID', 'ion8dhas7'); define('EXTENDIFY_SHOW_ONBOARDING', get_option('stylesheet') === 'extendable'); define('EXTENDIFY_INSIGHTS_URL', 'https://insights.extendify.com'); /************************************* *! Do not make changes below this line *************************************/ /** Insights */ if (! wp_next_scheduled('extendify_insights')) { if (get_option('extendify_insights_stop', false)) { return; } wp_schedule_event(current_time('timestamp'), 'daily', 'extendify_insights'); } add_action('extendify_insights', [new ExtendifyInsights, 'run']); class ExtendifyInsights { public $domain; public function __construct() { if (!defined('EXTENDIFY_INSIGHTS_URL')) { return; } $url = trailingslashit(EXTENDIFY_INSIGHTS_URL) . 'api/v1/insights'; $this->domain = apply_filters('extendify_insights_url', $url); $this->showRestEndpoint(); $this->trackLogins(); } public function run() { if (! $this->domain || ! $siteId = get_option('extendify_site_id', false)) { return; } $tourData = get_option('extendify_assist_tour_progress', ['state' => []]); $tourData = isset($tourData['state']['progress']) ? $tourData['state']['progress'] : []; $data = apply_filters('extendify_insights_data', [ 'site' => $this->getSiteData(), 'pages' => $this->getPageData(), 'plugins' => get_option('active_plugins'), 'tourData' => $tourData, ]); $response = wp_remote_post($this->domain, [ 'headers' => [ 'Content-Type' => 'application/json', 'X-Extendify-Site-Id' => $siteId, ], 'timeout' => 3, 'body' => wp_json_encode($data), ]); if (! is_wp_error($response)) { $data = json_decode(wp_remote_retrieve_body($response), true); if (isset($data['stop'])) { update_option('extendify_insights_stop', true); wp_clear_scheduled_hook('extendify_insights'); } } } private function getSiteData() { global $wpdb; $partner = defined('EXTENDIFY_PARTNER_ID') ? EXTENDIFY_PARTNER_ID : null; if (! $partner && isset($GLOBALS['extendify_sdk_partner'])) { $partner = $GLOBALS['extendify_sdk_partner']; } $devBuild = defined('EXTENDIFY_PATH') ? is_readable(EXTENDIFY_PATH . 'public/build/.devbuild') : null; $media = $wpdb->get_row("SELECT COUNT(ID) as count FROM {$wpdb->posts} WHERE post_type = 'attachment'"); $users = count_users(); // Home page $response = wp_remote_get(home_url(), [ 'timeout' => 1, ]); $home = ! is_wp_error($response) ? wp_remote_retrieve_body($response) : ''; $siteType = get_option('extendify_siteType', ''); $siteType = isset($siteType['slug']) ? $siteType['slug'] : ''; $tasksData = get_option('extendify_assist_tasks', ['state' => []]); $tasksData = isset($tasksData['state']) ? $tasksData['state'] : []; return [ 'title' => get_bloginfo('name'), 'description' => get_bloginfo('description'), 'url' => home_url(), 'restEndpoint' => rest_url(), 'adminUrl' => admin_url(), 'adminUsers' => $users['avail_roles']['administrator'], 'users' => $users['total_users'], 'homeUrls' => $this->getUrlsFromContent(preg_replace('#<head>(.*?)</head>#is', '', $home)), 'mediaLibraryCount' => $media->count, 'wpVersion' => get_bloginfo('version'), 'language' => get_bloginfo('language'), 'siteLogo' => get_option('site_logo', 0), 'loginTotals' => get_option('extendify_login_count', 0), 'siteType' => $siteType, 'theme' => get_option('stylesheet', ''), 'favicon' => $this->getFaviconHash(), 'partner' => $partner, 'isDev' => $devBuild, 'completedTasks' => isset($tasksData['completedTasks']) ? $tasksData['completedTasks'] : [], ]; } private function getPageData() { $pageData = []; $pages = get_posts([ 'posts_per_page' => -1, 'post_status' => ['trash', 'publish', 'any'], 'post_type' => 'page', 'date_query' => [ [ 'column' => 'post_modified_gmt', 'after' => '24 hours ago', ] ], ]); foreach ($pages as $page) { $revisions = wp_get_post_revisions($page->ID, [ 'posts_per_page' => -1, 'date_query' => [ [ 'column' => 'post_modified_gmt', 'after' => '24 hours ago', ] ], ]); $pageData[] = [ 'ID' => $page->ID, 'usedLaunch' => filter_var(get_post_meta($page->ID, 'made_with_extendify_launch', true), FILTER_VALIDATE_BOOLEAN), 'name' => $page->post_name, 'title' => $page->post_title, 'status' => $page->post_status, 'date' => $page->post_date_gmt, 'hasExtendifyPattern' => strpos($page->post_content, 'ext-') !== false, 'hasUnsplashImage' => strpos($page->post_content, 'unsplash') !== false, 'template' => get_page_template_slug($page->ID), 'pageUrls' => $this->getUrlsFromContent($page->post_content), 'pageEmails' => $this->getEmailsFromContent($page->post_content), 'revisions' => array_map(function (WP_Post $pageRevision) { return [ 'ID' => $pageRevision->ID, 'name' => $pageRevision->post_name, 'status' => $pageRevision->post_status, 'title' => $pageRevision->post_title, 'date' => $pageRevision->post_date_gmt, 'hasExtendifyPattern' => strpos($pageRevision->post_content, 'ext-') !== false, 'hasUnsplashImage' => strpos($pageRevision->post_content, 'unsplash') !== false, 'pageUrls' => $this->getUrlsFromContent($pageRevision->post_content), 'pageEmails' => $this->getEmailsFromContent($pageRevision->post_content), ]; }, $revisions), ]; } return $pageData; } private function showRestEndpoint() { add_filter('rest_route_data', function (array $available) { unset($available['/extendify-insights']); return $available; }); add_filter('rest_index', function (WP_REST_Response $response) { $response->data['routes'] = array_filter($response->data['routes'], function ($key) { return strpos($key, 'extendify-insights') === false; }, ARRAY_FILTER_USE_KEY); $response->data['namespaces'] = array_values( array_filter($response->data['namespaces'], function ($value) { return strpos($value, 'extendify-insights') === false; }) ); return $response; }); add_action('rest_api_init', function () { register_rest_route('extendify-insights', 'active', [ 'methods' => 'GET', 'permission_callback' => '__return_true', 'show_in_index' => false, 'callback' => function (WP_REST_Request $request) { // Just to hide it from anyone fuzzing endpoints if ($request->get_param('token') === 'o9vbeXa88iwuYvzTQQcQ6ZCfXZny1zYPKaz3SaeL') { return true; } // Return the same response WP uses when the route isnt registered return new WP_Error( 'rest_no_route', 'No route was found matching the URL and request method.', ['status' => 404] ); }, ]); }); } private function trackLogins() { add_action('wp_login', function () { $count = get_option('extendify_login_count'); update_option('extendify_login_count', intval($count) + 1); }); } private function getUrlsFromContent($content) { preg_match_all('#\bhttps?://[^,\s()<>]+(?:\([\w\d]+\)|([^,[:punct:]\s]|/))#', $content, $urls); return array_values(array_unique( array_filter($urls[0], function ($url) { return ! preg_match( "/w3\.org|schema\.org|wordpress.org|w.org|wp-json|unsplash|\.(svg|png|jpe?g|js|css|xml|php)/", $url ); }) )); } private function getEmailsFromContent($content) { preg_match_all('#\b[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,4}\b#i', $content, $emails); return array_values(array_unique($emails[0])); } private function getFaviconHash() { $response = wp_remote_get('https://s2.googleusercontent.com/s2/favicons?domain=' . home_url()); if (! is_wp_error($response)) { return md5(wp_remote_retrieve_body($response)); } return null; } } Heavy Duty Shelving Buying Guide: How to Choose the Right Shelving for Your Garage, Workshop or Warehouse | RackingOutlet

Heavy Duty Shelving Buying Guide: How to Choose the Right Shelving for Your Garage, Workshop or Warehouse

Learn how to choose heavy duty shelving for a garage, workshop, stockroom or warehouse, including 800kg UDL load capacity, shelf materials, sizing and safety tips.

.

Heavy duty shelving and racking in a UK garage and stockroom setup

Choosing the right heavy duty shelving is not just about finding a rack that looks strong. For a garage, workshop, stockroom or warehouse, the right shelving needs to match the weight you store, the space you have available and the way your team needs to access items day to day.

This guide explains what to look for before buying heavy duty shelving in the UK, including load capacity, shelf depth, materials, boltless assembly and common use cases. It is written for buyers who want practical storage that can handle real work, not decorative shelving that starts to bow after a few months.

Heavy duty metal shelving unit with 800kg capacity
Heavy duty shelving is best chosen by load rating, shelf size, access needs and the environment it will be used in.

What counts as heavy duty shelving?

Heavy duty shelving is designed for storing bulky, dense or frequently handled items. It is commonly used in warehouses, garages, workshops, stockrooms, retail back rooms, trade units and small business storage areas.

Compared with light domestic shelving, heavy duty shelving usually has stronger steel uprights, reinforced beams, thicker shelf boards or steel decks, and a higher load rating per shelf. It is built for practical storage: tools, stock boxes, parts, equipment, archive boxes, paint tins, packing materials and other heavy goods.

If you are storing a few household boxes, standard shelving may be enough. If you are storing trade stock, machinery parts, heavy cartons or workshop equipment, a heavy duty metal shelving unit is usually the safer long-term choice.

Understand shelf capacity and UDL

One of the most important specifications is the shelf load rating. You may see this shown as 175kg, 300kg, 500kg or 800kg per shelf. On industrial shelving, this is often described as UDL, which stands for uniformly distributed load.

UDL means the weight should be spread evenly across the shelf, not placed as one extremely heavy point load in the centre. For example, a shelf rated to 800kg UDL is intended to carry up to 800kg when that weight is properly distributed across the full shelf area.

  • Use lower-capacity shelving for light boxes, seasonal items and occasional storage.
  • Use medium or heavy duty shelving for tools, stock, parts and business supplies.
  • Choose higher-capacity shelving when storing dense loads, commercial stock or equipment.

If you are unsure, choose a stronger unit rather than running shelves close to their limit every day. A stronger frame gives you more flexibility as your storage needs change.

Garage, workshop or warehouse: match shelving to the job

The best shelving choice depends on where it will be used. A UK garage may need compact units that fit around doors, vehicles and uneven floors. A workshop may need open access to tools and parts. A warehouse or stockroom may need stronger bays, clear walkways and repeatable storage layouts.

For garages, think about depth and access first. Deep shelves store more, but they can become difficult to organise if the items at the back are hard to reach. For workshops, adjustable shelf heights are useful because tools, boxes and equipment often vary in size. For warehouses and stockrooms, consistency matters: matching shelf sizes makes it easier to label bays and keep stock organised.

Heavy duty racking and shelving solutions for warehouse storage
Plan shelving around the space, the weight of the goods and how often items need to be accessed.

Choose the right height, width and depth

Before buying, measure the area carefully. Check ceiling height, door clearance, skirting boards, pipework, sockets and any space needed for people to move safely around the shelving.

  • Height: Taller shelving makes better use of vertical space, but heavy items should normally stay on lower shelves.
  • Width: Wider bays can hold more stock, but you need enough floor space and stable placement.
  • Depth: Deeper shelves are useful for bulky boxes, while shallower shelves are easier to browse and organise.

A common mistake is buying the biggest shelving unit possible without thinking about access. Good storage should make items easier to find, not just move clutter from the floor onto a shelf.

Boltless shelving and quick assembly

Many heavy duty shelving units use a boltless design. This usually means the beams lock into the upright frames without nuts and bolts, often using a keyhole or rivet-style system. It can make assembly faster and simpler, especially when setting up multiple bays.

Boltless shelving is popular for garages, workshops and business storage because shelves can often be adjusted to suit changing stock or equipment. Always follow the assembly instructions, check that beams are properly seated and place the unit on a stable, level surface.

Shelf materials: chipboard, MDF and steel

The shelf material matters as much as the frame. Chipboard and MDF decks are common because they provide a flat surface for boxes, tools and general goods. Steel shelves can be better for damp or more industrial environments, depending on the product design and finish.

  • Chipboard: Practical and cost-effective for many dry indoor storage areas.
  • MDF: Smooth and useful for general storage, but should be kept away from damp conditions.
  • Steel: Strong, durable and often better suited to tougher industrial environments.

For garages and workshops, check whether the space is dry and ventilated. Moisture can affect board-based shelves over time, so the environment should influence your choice.

Safety tips before loading your shelves

Heavy duty shelving is only safe when it is assembled, positioned and loaded correctly. Keep the heaviest items low, spread weight evenly and avoid climbing on shelves. If the unit is placed in a busy workspace, consider whether it should be fixed to a wall or positioned away from impact areas.

  • Build the unit on a level floor.
  • Check that all beams and shelves are locked into place.
  • Keep heavy goods on lower levels.
  • Do not exceed the stated load rating.
  • Leave safe walking space around the shelving.

Recommended heavy duty shelving

For buyers who need serious storage capacity, the Heavy Duty Metal Shelving – 800kg Capacity is designed for demanding garage, workshop, warehouse and stockroom use. It is a practical option when you need strong shelving for heavy boxes, tools, parts or business stock.

You can also browse the full RackingOutlet shop for related storage and industrial supply products, including wire mesh panels and packing materials.

FAQ

What is the best shelving for a garage?

For most garages, heavy duty metal shelving is a strong choice because it can handle tools, boxes, DIY equipment and bulky household items. Choose the load rating and shelf depth based on what you plan to store.

What does 800kg UDL mean?

800kg UDL means the shelf can carry up to 800kg as a uniformly distributed load. The weight should be spread evenly across the shelf rather than concentrated in one small area.

Is boltless shelving strong?

Yes, boltless shelving can be very strong when it is designed for heavy duty use and assembled correctly. The key is to check the stated load rating, frame construction and shelf material.

Can heavy duty shelving be used in a warehouse?

Heavy duty shelving is commonly used in warehouses and stockrooms for hand-loaded goods, boxes, parts and supplies. For pallet storage or forklift-loaded goods, a dedicated pallet racking system may be required.

Should heavy items go on the top shelf?

No. The heaviest items should usually be stored on lower shelves. This improves stability, reduces lifting risk and makes the shelving safer to use.

Related local shelving pages

If you are buying for a local garage, workshop or stockroom, these pages may also help:

Want us to recommend the right storage setup?

Send us your space, load requirements or product questions on WhatsApp and we will help you choose a practical option.