The overall score for this website.
How accessible the website is to mobile and disabled users.
The following tests contribute to this score:
How satisfying the website is likely to be for users.
The following tests contribute to this score:
How well marketed, and popular the website is.
The following tests contribute to this score:
How well designed and built the website is.
The following tests contribute to this score:
Nibbler tested a sample of 5 pages from this website at 12:56 on 17 Apr 2024 (BST).
This website does not appear to be associated with a Twitter account.
0% of pages are optimised for printing
Page | |
www.whitestores.co.uk/ | Not detected |
www.whitestores.co.uk/our-story | Not detected |
www.whitestores.co.uk/klarna-faqs | Not detected |
www.whitestores.co.uk/our-garden-furniture-showrooms | Not detected |
www.whitestores.co.uk/delivery-details | Not detected |
Link URL | Link text | Page URL |
www.whitestores.co.uk/blog | Discover more | www.whitestores.co.uk/ |
www.whitestores.co.uk/blog | Discover more | www.whitestores.co.uk/our-story |
www.whitestores.co.uk/blog | Discover more | www.whitestores.co.uk/klarna-faqs |
www.whitestores.co.uk/blog | Discover more | www.whitestores.co.uk/our-garden-furniture-showrooms |
www.whitestores.co.uk/blog | Discover more | www.whitestores.co.uk/delivery-details |
Link URL | Link text | Page URL |
www.whitestores.co.uk/titan-aluminium-metal-pergola-in-graphite-grey | function initListingGallery_4773() { return { imageData: null, displayAsGallery: false, swiper: null, init() { this.$watch('displayAsGallery', this.onDisplayChange.bind(this)); }, /** * Triggered when the display mode is changed; such as when only 1 image is available. * * @param displayAsGallery {Boolean} * @return void */ onDisplayChange(displayAsGallery) { if (!displayAsGallery) { this.$refs.img.src = this.imageData.medium; return; } /** * Push the Swiper initialisation to the back of the macrotask queue. Ensures all microtasks and Alpine * rendering is completed before Swiper performs DOM mutations. */ this.$nextTick(() => { this.initSwiper(); }); }, /** * Callback function, when the 'update-gallery-{productId}' event is fired * * @return void */ onChange() { this.imageData = this.limitGalleryItems(this.$event.detail); this.displayAsGallery = !this.$root.closest('.swiper') && this.imageData.gallery && Object.keys(this.imageData.gallery).length && Object.keys(this.imageData.gallery).length > 1; this.onDisplayChange(this.displayAsGallery); }, /** * Limits the amount of images to be rendered * * @param {Object} imageData * @return {Object} */ limitGalleryItems(imageData) { const maxImages = 9; /** * Creates a 'spliced' object to reduce images to render. * * Don't need to create a 'spliced' object if: * - The gallery doesn't already exist * - The maximum amount of images is set to '0' via the admin (disabled) * - The gallery contains less than or equal to the defined amount of maximum images */ if ( imageData.gallery && maxImages && Object.keys(imageData.gallery).length > maxImages ) { const newGallery = {}; Object.entries(imageData.gallery).forEach(([key, image], index) => { if (index < maxImages) { newGallery[key] = image; } }); imageData.gallery = newGallery; } return imageData; }, /** * Initialise Swiper instance, destroy previous instance if one exists * * @return void */ initSwiper() { const element = this.$root; const swiperElement = element.querySelector('.swiper'); if (this.swiper) { this.swiper.destroy(); // Remove/cleanup existing instance to reduce memory usage } if (!swiperElement) { return; } let swiperConfig = { wrapperClass: 'list-gallery-wrapper', slidesPerView: 1, spaceBetween: 15, loop: false, autoplay: false, threshold: 5, preloadImages: false, // Performance improvement, rely on browser native lazyloading navigation: { enabled: false, }, pagination: { el: '.swiper-pagination', enabled: true, dynamicBullets: true, }, breakpoints: { 992: { spaceBetween: 30, pagination: { enabled: false, }, navigation: { enabled: true, nextEl: '.swiper-button-next', prevEl: '.swiper-button-prev', }, }, } }; this.swiper = new Swiper(swiperElement, swiperConfig); }, } } | www.whitestores.co.uk/ |
www.whitestores.co.uk/nova-vogue-l-shaped-corner-aluminium-lounge-dining-set-with-armchair-and-bench | function initListingGallery_3656() { return { imageData: null, displayAsGallery: false, swiper: null, init() { this.$watch('displayAsGallery', this.onDisplayChange.bind(this)); }, /** * Triggered when the display mode is changed; such as when only 1 image is available. * * @param displayAsGallery {Boolean} * @return void */ onDisplayChange(displayAsGallery) { if (!displayAsGallery) { this.$refs.img.src = this.imageData.medium; return; } /** * Push the Swiper initialisation to the back of the macrotask queue. Ensures all microtasks and Alpine * rendering is completed before Swiper performs DOM mutations. */ this.$nextTick(() => { this.initSwiper(); }); }, /** * Callback function, when the 'update-gallery-{productId}' event is fired * * @return void */ onChange() { this.imageData = this.limitGalleryItems(this.$event.detail); this.displayAsGallery = !this.$root.closest('.swiper') && this.imageData.gallery && Object.keys(this.imageData.gallery).length && Object.keys(this.imageData.gallery).length > 1; this.onDisplayChange(this.displayAsGallery); }, /** * Limits the amount of images to be rendered * * @param {Object} imageData * @return {Object} */ limitGalleryItems(imageData) { const maxImages = 9; /** * Creates a 'spliced' object to reduce images to render. * * Don't need to create a 'spliced' object if: * - The gallery doesn't already exist * - The maximum amount of images is set to '0' via the admin (disabled) * - The gallery contains less than or equal to the defined amount of maximum images */ if ( imageData.gallery && maxImages && Object.keys(imageData.gallery).length > maxImages ) { const newGallery = {}; Object.entries(imageData.gallery).forEach(([key, image], index) => { if (index < maxImages) { newGallery[key] = image; } }); imageData.gallery = newGallery; } return imageData; }, /** * Initialise Swiper instance, destroy previous instance if one exists * * @return void */ initSwiper() { const element = this.$root; const swiperElement = element.querySelector('.swiper'); if (this.swiper) { this.swiper.destroy(); // Remove/cleanup existing instance to reduce memory usage } if (!swiperElement) { return; } let swiperConfig = { wrapperClass: 'list-gallery-wrapper', slidesPerView: 1, spaceBetween: 15, loop: false, autoplay: false, threshold: 5, preloadImages: false, // Performance improvement, rely on browser native lazyloading navigation: { enabled: false, }, pagination: { el: '.swiper-pagination', enabled: true, dynamicBullets: true, }, breakpoints: { 992: { spaceBetween: 30, pagination: { enabled: false, }, navigation: { enabled: true, nextEl: '.swiper-button-next', prevEl: '.swiper-button-prev', }, }, } }; this.swiper = new Swiper(swiperElement, swiperConfig); }, } } | www.whitestores.co.uk/ |
www.whitestores.co.uk/napoleon-freestyle-phantom-black-4-burner-gas-bbq-freestyle-425-lpg | function initListingGallery_4900() { return { imageData: null, displayAsGallery: false, swiper: null, init() { this.$watch('displayAsGallery', this.onDisplayChange.bind(this)); }, /** * Triggered when the display mode is changed; such as when only 1 image is available. * * @param displayAsGallery {Boolean} * @return void */ onDisplayChange(displayAsGallery) { if (!displayAsGallery) { this.$refs.img.src = this.imageData.medium; return; } /** * Push the Swiper initialisation to the back of the macrotask queue. Ensures all microtasks and Alpine * rendering is completed before Swiper performs DOM mutations. */ this.$nextTick(() => { this.initSwiper(); }); }, /** * Callback function, when the 'update-gallery-{productId}' event is fired * * @return void */ onChange() { this.imageData = this.limitGalleryItems(this.$event.detail); this.displayAsGallery = !this.$root.closest('.swiper') && this.imageData.gallery && Object.keys(this.imageData.gallery).length && Object.keys(this.imageData.gallery).length > 1; this.onDisplayChange(this.displayAsGallery); }, /** * Limits the amount of images to be rendered * * @param {Object} imageData * @return {Object} */ limitGalleryItems(imageData) { const maxImages = 9; /** * Creates a 'spliced' object to reduce images to render. * * Don't need to create a 'spliced' object if: * - The gallery doesn't already exist * - The maximum amount of images is set to '0' via the admin (disabled) * - The gallery contains less than or equal to the defined amount of maximum images */ if ( imageData.gallery && maxImages && Object.keys(imageData.gallery).length > maxImages ) { const newGallery = {}; Object.entries(imageData.gallery).forEach(([key, image], index) => { if (index < maxImages) { newGallery[key] = image; } }); imageData.gallery = newGallery; } return imageData; }, /** * Initialise Swiper instance, destroy previous instance if one exists * * @return void */ initSwiper() { const element = this.$root; const swiperElement = element.querySelector('.swiper'); if (this.swiper) { this.swiper.destroy(); // Remove/cleanup existing instance to reduce memory usage } if (!swiperElement) { return; } let swiperConfig = { wrapperClass: 'list-gallery-wrapper', slidesPerView: 1, spaceBetween: 15, loop: false, autoplay: false, threshold: 5, preloadImages: false, // Performance improvement, rely on browser native lazyloading navigation: { enabled: false, }, pagination: { el: '.swiper-pagination', enabled: true, dynamicBullets: true, }, breakpoints: { 992: { spaceBetween: 30, pagination: { enabled: false, }, navigation: { enabled: true, nextEl: '.swiper-button-next', prevEl: '.swiper-button-prev', }, }, } }; this.swiper = new Swiper(swiperElement, swiperConfig); }, } } | www.whitestores.co.uk/ |
www.whitestores.co.uk/heritage-rattan-4-seat-cube-dining-set | function initListingGallery_831() { return { imageData: null, displayAsGallery: false, swiper: null, init() { this.$watch('displayAsGallery', this.onDisplayChange.bind(this)); }, /** * Triggered when the display mode is changed; such as when only 1 image is available. * * @param displayAsGallery {Boolean} * @return void */ onDisplayChange(displayAsGallery) { if (!displayAsGallery) { this.$refs.img.src = this.imageData.medium; return; } /** * Push the Swiper initialisation to the back of the macrotask queue. Ensures all microtasks and Alpine * rendering is completed before Swiper performs DOM mutations. */ this.$nextTick(() => { this.initSwiper(); }); }, /** * Callback function, when the 'update-gallery-{productId}' event is fired * * @return void */ onChange() { this.imageData = this.limitGalleryItems(this.$event.detail); this.displayAsGallery = !this.$root.closest('.swiper') && this.imageData.gallery && Object.keys(this.imageData.gallery).length && Object.keys(this.imageData.gallery).length > 1; this.onDisplayChange(this.displayAsGallery); }, /** * Limits the amount of images to be rendered * * @param {Object} imageData * @return {Object} */ limitGalleryItems(imageData) { const maxImages = 9; /** * Creates a 'spliced' object to reduce images to render. * * Don't need to create a 'spliced' object if: * - The gallery doesn't already exist * - The maximum amount of images is set to '0' via the admin (disabled) * - The gallery contains less than or equal to the defined amount of maximum images */ if ( imageData.gallery && maxImages && Object.keys(imageData.gallery).length > maxImages ) { const newGallery = {}; Object.entries(imageData.gallery).forEach(([key, image], index) => { if (index < maxImages) { newGallery[key] = image; } }); imageData.gallery = newGallery; } return imageData; }, /** * Initialise Swiper instance, destroy previous instance if one exists * * @return void */ initSwiper() { const element = this.$root; const swiperElement = element.querySelector('.swiper'); if (this.swiper) { this.swiper.destroy(); // Remove/cleanup existing instance to reduce memory usage } if (!swiperElement) { return; } let swiperConfig = { wrapperClass: 'list-gallery-wrapper', slidesPerView: 1, spaceBetween: 15, loop: false, autoplay: false, threshold: 5, preloadImages: false, // Performance improvement, rely on browser native lazyloading navigation: { enabled: false, }, pagination: { el: '.swiper-pagination', enabled: true, dynamicBullets: true, }, breakpoints: { 992: { spaceBetween: 30, pagination: { enabled: false, }, navigation: { enabled: true, nextEl: '.swiper-button-next', prevEl: '.swiper-button-prev', }, }, } }; this.swiper = new Swiper(swiperElement, swiperConfig); }, } } | www.whitestores.co.uk/ |
www.whitestores.co.uk/nova-cambridge-l-shaped-corner-rattan-lounge-dining-set-with-3-stools | function initListingGallery_3682() { return { imageData: null, displayAsGallery: false, swiper: null, init() { this.$watch('displayAsGallery', this.onDisplayChange.bind(this)); }, /** * Triggered when the display mode is changed; such as when only 1 image is available. * * @param displayAsGallery {Boolean} * @return void */ onDisplayChange(displayAsGallery) { if (!displayAsGallery) { this.$refs.img.src = this.imageData.medium; return; } /** * Push the Swiper initialisation to the back of the macrotask queue. Ensures all microtasks and Alpine * rendering is completed before Swiper performs DOM mutations. */ this.$nextTick(() => { this.initSwiper(); }); }, /** * Callback function, when the 'update-gallery-{productId}' event is fired * * @return void */ onChange() { this.imageData = this.limitGalleryItems(this.$event.detail); this.displayAsGallery = !this.$root.closest('.swiper') && this.imageData.gallery && Object.keys(this.imageData.gallery).length && Object.keys(this.imageData.gallery).length > 1; this.onDisplayChange(this.displayAsGallery); }, /** * Limits the amount of images to be rendered * * @param {Object} imageData * @return {Object} */ limitGalleryItems(imageData) { const maxImages = 9; /** * Creates a 'spliced' object to reduce images to render. * * Don't need to create a 'spliced' object if: * - The gallery doesn't already exist * - The maximum amount of images is set to '0' via the admin (disabled) * - The gallery contains less than or equal to the defined amount of maximum images */ if ( imageData.gallery && maxImages && Object.keys(imageData.gallery).length > maxImages ) { const newGallery = {}; Object.entries(imageData.gallery).forEach(([key, image], index) => { if (index < maxImages) { newGallery[key] = image; } }); imageData.gallery = newGallery; } return imageData; }, /** * Initialise Swiper instance, destroy previous instance if one exists * * @return void */ initSwiper() { const element = this.$root; const swiperElement = element.querySelector('.swiper'); if (this.swiper) { this.swiper.destroy(); // Remove/cleanup existing instance to reduce memory usage } if (!swiperElement) { return; } let swiperConfig = { wrapperClass: 'list-gallery-wrapper', slidesPerView: 1, spaceBetween: 15, loop: false, autoplay: false, threshold: 5, preloadImages: false, // Performance improvement, rely on browser native lazyloading navigation: { enabled: false, }, pagination: { el: '.swiper-pagination', enabled: true, dynamicBullets: true, }, breakpoints: { 992: { spaceBetween: 30, pagination: { enabled: false, }, navigation: { enabled: true, nextEl: '.swiper-button-next', prevEl: '.swiper-button-prev', }, }, } }; this.swiper = new Swiper(swiperElement, swiperConfig); }, } } | www.whitestores.co.uk/ |
www.whitestores.co.uk/nova-antigua-3-0m-x-2-0m-rectangular-aluminium-traditional-parasol | function initListingGallery_4732() { return { imageData: null, displayAsGallery: false, swiper: null, init() { this.$watch('displayAsGallery', this.onDisplayChange.bind(this)); }, /** * Triggered when the display mode is changed; such as when only 1 image is available. * * @param displayAsGallery {Boolean} * @return void */ onDisplayChange(displayAsGallery) { if (!displayAsGallery) { this.$refs.img.src = this.imageData.medium; return; } /** * Push the Swiper initialisation to the back of the macrotask queue. Ensures all microtasks and Alpine * rendering is completed before Swiper performs DOM mutations. */ this.$nextTick(() => { this.initSwiper(); }); }, /** * Callback function, when the 'update-gallery-{productId}' event is fired * * @return void */ onChange() { this.imageData = this.limitGalleryItems(this.$event.detail); this.displayAsGallery = !this.$root.closest('.swiper') && this.imageData.gallery && Object.keys(this.imageData.gallery).length && Object.keys(this.imageData.gallery).length > 1; this.onDisplayChange(this.displayAsGallery); }, /** * Limits the amount of images to be rendered * * @param {Object} imageData * @return {Object} */ limitGalleryItems(imageData) { const maxImages = 9; /** * Creates a 'spliced' object to reduce images to render. * * Don't need to create a 'spliced' object if: * - The gallery doesn't already exist * - The maximum amount of images is set to '0' via the admin (disabled) * - The gallery contains less than or equal to the defined amount of maximum images */ if ( imageData.gallery && maxImages && Object.keys(imageData.gallery).length > maxImages ) { const newGallery = {}; Object.entries(imageData.gallery).forEach(([key, image], index) => { if (index < maxImages) { newGallery[key] = image; } }); imageData.gallery = newGallery; } return imageData; }, /** * Initialise Swiper instance, destroy previous instance if one exists * * @return void */ initSwiper() { const element = this.$root; const swiperElement = element.querySelector('.swiper'); if (this.swiper) { this.swiper.destroy(); // Remove/cleanup existing instance to reduce memory usage } if (!swiperElement) { return; } let swiperConfig = { wrapperClass: 'list-gallery-wrapper', slidesPerView: 1, spaceBetween: 15, loop: false, autoplay: false, threshold: 5, preloadImages: false, // Performance improvement, rely on browser native lazyloading navigation: { enabled: false, }, pagination: { el: '.swiper-pagination', enabled: true, dynamicBullets: true, }, breakpoints: { 992: { spaceBetween: 30, pagination: { enabled: false, }, navigation: { enabled: true, nextEl: '.swiper-button-next', prevEl: '.swiper-button-prev', }, }, } }; this.swiper = new Swiper(swiperElement, swiperConfig); }, } } | www.whitestores.co.uk/ |
www.whitestores.co.uk/shadow-metal-pergola-in-graphite-grey | function initListingGallery_4766() { return { imageData: null, displayAsGallery: false, swiper: null, init() { this.$watch('displayAsGallery', this.onDisplayChange.bind(this)); }, /** * Triggered when the display mode is changed; such as when only 1 image is available. * * @param displayAsGallery {Boolean} * @return void */ onDisplayChange(displayAsGallery) { if (!displayAsGallery) { this.$refs.img.src = this.imageData.medium; return; } /** * Push the Swiper initialisation to the back of the macrotask queue. Ensures all microtasks and Alpine * rendering is completed before Swiper performs DOM mutations. */ this.$nextTick(() => { this.initSwiper(); }); }, /** * Callback function, when the 'update-gallery-{productId}' event is fired * * @return void */ onChange() { this.imageData = this.limitGalleryItems(this.$event.detail); this.displayAsGallery = !this.$root.closest('.swiper') && this.imageData.gallery && Object.keys(this.imageData.gallery).length && Object.keys(this.imageData.gallery).length > 1; this.onDisplayChange(this.displayAsGallery); }, /** * Limits the amount of images to be rendered * * @param {Object} imageData * @return {Object} */ limitGalleryItems(imageData) { const maxImages = 9; /** * Creates a 'spliced' object to reduce images to render. * * Don't need to create a 'spliced' object if: * - The gallery doesn't already exist * - The maximum amount of images is set to '0' via the admin (disabled) * - The gallery contains less than or equal to the defined amount of maximum images */ if ( imageData.gallery && maxImages && Object.keys(imageData.gallery).length > maxImages ) { const newGallery = {}; Object.entries(imageData.gallery).forEach(([key, image], index) => { if (index < maxImages) { newGallery[key] = image; } }); imageData.gallery = newGallery; } return imageData; }, /** * Initialise Swiper instance, destroy previous instance if one exists * * @return void */ initSwiper() { const element = this.$root; const swiperElement = element.querySelector('.swiper'); if (this.swiper) { this.swiper.destroy(); // Remove/cleanup existing instance to reduce memory usage } if (!swiperElement) { return; } let swiperConfig = { wrapperClass: 'list-gallery-wrapper', slidesPerView: 1, spaceBetween: 15, loop: false, autoplay: false, threshold: 5, preloadImages: false, // Performance improvement, rely on browser native lazyloading navigation: { enabled: false, }, pagination: { el: '.swiper-pagination', enabled: true, dynamicBullets: true, }, breakpoints: { 992: { spaceBetween: 30, pagination: { enabled: false, }, navigation: { enabled: true, nextEl: '.swiper-button-next', prevEl: '.swiper-button-prev', }, }, } }; this.swiper = new Swiper(swiperElement, swiperConfig); }, } } | www.whitestores.co.uk/ |
www.whitestores.co.uk/arlo-3-seater-left-handed-chaise-sofa-in-ash-grey | function initListingGallery_4923() { return { imageData: null, displayAsGallery: false, swiper: null, init() { this.$watch('displayAsGallery', this.onDisplayChange.bind(this)); }, /** * Triggered when the display mode is changed; such as when only 1 image is available. * * @param displayAsGallery {Boolean} * @return void */ onDisplayChange(displayAsGallery) { if (!displayAsGallery) { this.$refs.img.src = this.imageData.medium; return; } /** * Push the Swiper initialisation to the back of the macrotask queue. Ensures all microtasks and Alpine * rendering is completed before Swiper performs DOM mutations. */ this.$nextTick(() => { this.initSwiper(); }); }, /** * Callback function, when the 'update-gallery-{productId}' event is fired * * @return void */ onChange() { this.imageData = this.limitGalleryItems(this.$event.detail); this.displayAsGallery = !this.$root.closest('.swiper') && this.imageData.gallery && Object.keys(this.imageData.gallery).length && Object.keys(this.imageData.gallery).length > 1; this.onDisplayChange(this.displayAsGallery); }, /** * Limits the amount of images to be rendered * * @param {Object} imageData * @return {Object} */ limitGalleryItems(imageData) { const maxImages = 9; /** * Creates a 'spliced' object to reduce images to render. * * Don't need to create a 'spliced' object if: * - The gallery doesn't already exist * - The maximum amount of images is set to '0' via the admin (disabled) * - The gallery contains less than or equal to the defined amount of maximum images */ if ( imageData.gallery && maxImages && Object.keys(imageData.gallery).length > maxImages ) { const newGallery = {}; Object.entries(imageData.gallery).forEach(([key, image], index) => { if (index < maxImages) { newGallery[key] = image; } }); imageData.gallery = newGallery; } return imageData; }, /** * Initialise Swiper instance, destroy previous instance if one exists * * @return void */ initSwiper() { const element = this.$root; const swiperElement = element.querySelector('.swiper'); if (this.swiper) { this.swiper.destroy(); // Remove/cleanup existing instance to reduce memory usage } if (!swiperElement) { return; } let swiperConfig = { wrapperClass: 'list-gallery-wrapper', slidesPerView: 1, spaceBetween: 15, loop: false, autoplay: false, threshold: 5, preloadImages: false, // Performance improvement, rely on browser native lazyloading navigation: { enabled: false, }, pagination: { el: '.swiper-pagination', enabled: true, dynamicBullets: true, }, breakpoints: { 992: { spaceBetween: 30, pagination: { enabled: false, }, navigation: { enabled: true, nextEl: '.swiper-button-next', prevEl: '.swiper-button-prev', }, }, } }; this.swiper = new Swiper(swiperElement, swiperConfig); }, } } | www.whitestores.co.uk/ |
www.whitestores.co.uk/nova-suspended-tri-prong-electric-patio-heater | function initListingGallery_3808() { return { imageData: null, displayAsGallery: false, swiper: null, init() { this.$watch('displayAsGallery', this.onDisplayChange.bind(this)); }, /** * Triggered when the display mode is changed; such as when only 1 image is available. * * @param displayAsGallery {Boolean} * @return void */ onDisplayChange(displayAsGallery) { if (!displayAsGallery) { this.$refs.img.src = this.imageData.medium; return; } /** * Push the Swiper initialisation to the back of the macrotask queue. Ensures all microtasks and Alpine * rendering is completed before Swiper performs DOM mutations. */ this.$nextTick(() => { this.initSwiper(); }); }, /** * Callback function, when the 'update-gallery-{productId}' event is fired * * @return void */ onChange() { this.imageData = this.limitGalleryItems(this.$event.detail); this.displayAsGallery = !this.$root.closest('.swiper') && this.imageData.gallery && Object.keys(this.imageData.gallery).length && Object.keys(this.imageData.gallery).length > 1; this.onDisplayChange(this.displayAsGallery); }, /** * Limits the amount of images to be rendered * * @param {Object} imageData * @return {Object} */ limitGalleryItems(imageData) { const maxImages = 9; /** * Creates a 'spliced' object to reduce images to render. * * Don't need to create a 'spliced' object if: * - The gallery doesn't already exist * - The maximum amount of images is set to '0' via the admin (disabled) * - The gallery contains less than or equal to the defined amount of maximum images */ if ( imageData.gallery && maxImages && Object.keys(imageData.gallery).length > maxImages ) { const newGallery = {}; Object.entries(imageData.gallery).forEach(([key, image], index) => { if (index < maxImages) { newGallery[key] = image; } }); imageData.gallery = newGallery; } return imageData; }, /** * Initialise Swiper instance, destroy previous instance if one exists * * @return void */ initSwiper() { const element = this.$root; const swiperElement = element.querySelector('.swiper'); if (this.swiper) { this.swiper.destroy(); // Remove/cleanup existing instance to reduce memory usage } if (!swiperElement) { return; } let swiperConfig = { wrapperClass: 'list-gallery-wrapper', slidesPerView: 1, spaceBetween: 15, loop: false, autoplay: false, threshold: 5, preloadImages: false, // Performance improvement, rely on browser native lazyloading navigation: { enabled: false, }, pagination: { el: '.swiper-pagination', enabled: true, dynamicBullets: true, }, breakpoints: { 992: { spaceBetween: 30, pagination: { enabled: false, }, navigation: { enabled: true, nextEl: '.swiper-button-next', prevEl: '.swiper-button-prev', }, }, } }; this.swiper = new Swiper(swiperElement, swiperConfig); }, } } | www.whitestores.co.uk/ |
95% of images have a clearly defined size
712 images are being resized by the browser
Image URL | Format | Page URL |
www.whitestores.co.uk/ | unknown | |
www.whitestores.co.uk/our-story | unknown | |
www.whitestores.co.uk/klarna-faqs | unknown | |
www.whitestores.co.uk/our-garden-furniture-showrooms | unknown | |
www.whitestores.co.uk/delivery-details | unknown |
This is how this website will look in Google search listings:
Added Icon
www.whitestores.co.uk/
Buy garden furniture and accessories from our extensive range. We stock rattan garden furniture, patio sets, water features, patio heaters, and much more to create ...
Page URL | Name | Content |
www.whitestores.co.uk/ | title | Garden Furniture & Outdoor Accessories | White Stores |
www.whitestores.co.uk/ | description | Buy garden furniture and accessories from our extensive range. We stock rattan garden furniture, patio sets, water features, patio heaters, and much more to create the perfect garden. |
www.whitestores.co.uk/ | keywords | Magento, Varien, E-commerce |
www.whitestores.co.uk/ | robots | INDEX,FOLLOW |
www.whitestores.co.uk/ | viewport | width=device-width, initial-scale=1 |
www.whitestores.co.uk/ | p:domain_verify | r4RUDZnSZQNbVW0hjHIiIhTfMBdQIAH7 |
www.whitestores.co.uk/our-story | title | Our Story |
www.whitestores.co.uk/our-story | keywords | Magento, Varien, E-commerce |
www.whitestores.co.uk/our-story | robots | INDEX,FOLLOW |
www.whitestores.co.uk/our-story | viewport | width=device-width, initial-scale=1 |
www.whitestores.co.uk/our-story | p:domain_verify | r4RUDZnSZQNbVW0hjHIiIhTfMBdQIAH7 |
www.whitestores.co.uk/klarna-faqs | title | Klarna FAQs |
www.whitestores.co.uk/klarna-faqs | description | The UK's leading Outdoor Living specialist, offering a range of garden furniture, parasols, water features, pergolas and many other outdoor living products including artificial christmas trees, christmas lights and christmas decorations. |
www.whitestores.co.uk/klarna-faqs | keywords | garden furniture, rattan, cast aluminium, sunbrella, fabric, artificial christmas trees, christmas lights, christmas decorations |
www.whitestores.co.uk/klarna-faqs | robots | INDEX,FOLLOW |
www.whitestores.co.uk/klarna-faqs | viewport | width=device-width, initial-scale=1 |
www.whitestores.co.uk/klarna-faqs | p:domain_verify | r4RUDZnSZQNbVW0hjHIiIhTfMBdQIAH7 |
www.whitestores.co.uk/our-garden-furniture-showrooms | title | Our Stores | Visit White Stores – the outdoor living store |
www.whitestores.co.uk/our-garden-furniture-showrooms | description | Visit our nationwide stores to view, test & measure your garden furniture before buying. Find your nearest store using our store locator. |
www.whitestores.co.uk/our-garden-furniture-showrooms | keywords | Magento, Varien, E-commerce |
www.whitestores.co.uk/our-garden-furniture-showrooms | robots | INDEX,FOLLOW |
www.whitestores.co.uk/our-garden-furniture-showrooms | viewport | width=device-width, initial-scale=1 |
www.whitestores.co.uk/our-garden-furniture-showrooms | p:domain_verify | r4RUDZnSZQNbVW0hjHIiIhTfMBdQIAH7 |
www.whitestores.co.uk/delivery-details | title | Delivery Information | White Stores the outdoor living store |
www.whitestores.co.uk/delivery-details | description | Need your garden furniture delivered? We offer multiple delivery services to most UK mainland addresses. |
www.whitestores.co.uk/delivery-details | keywords | Magento, Varien, E-commerce |
www.whitestores.co.uk/delivery-details | robots | INDEX,FOLLOW |
www.whitestores.co.uk/delivery-details | viewport | width=device-width, initial-scale=1 |
www.whitestores.co.uk/delivery-details | p:domain_verify | r4RUDZnSZQNbVW0hjHIiIhTfMBdQIAH7 |
404 page
Compression
100% of pages use analytics
Google Tag Manager
100% of pages have defined titles
0% of page titles are weak
Every URL is well written
Rendering Chart...
Page | Characters | Words |
www.whitestores.co.uk/ | 34711 | 3527 |
www.whitestores.co.uk/our-story | 34792 | 3774 |
www.whitestores.co.uk/klarna-faqs | 25446 | 2130 |
www.whitestores.co.uk/our-garden-furniture-showrooms | 23737 | 1852 |
www.whitestores.co.uk/delivery-details | 35704 | 3846 |
Last updated April 17, 2024
Insites creates professional website reports that can be shared with your clients.
How does Insites compare?
Nibbler | Insites | |
---|---|---|
Tests | 17 fixed tests | 50+ testsCovers SEO, SEM, Google My Business, reviews, social media and much more |
Add your branding | No | Yes |
Export & share | No | PDF & link |
Lead generation | No | Embed on your site |
Competitor audits | No | Yes |
Test as a batch | No | Yes |
Integrations + API | No | Yes |
Multi-lingual | No | 20+ languages |
Try it free |