protected function checkIfCurrentPageIsIndexable()
    {
        // check caching status
        if ($this->pageIndexFlag !== null) {
            return $this->pageIndexFlag;
        }

        // by default page is not cacheable
        $this->pageIndexFlag = false;

        // ############################
        // Basic checks
        // ############################

        $cacheConf = array(
            'allowNoStaticCachable' => (bool)$this->conf['sitemap.']['index.']['allowNoStaticCachable'],
            'allowNoCache'          => (bool)$this->conf['sitemap.']['index.']['allowNoCache']
        );


        if (!FrontendUtility::isCacheable($cacheConf)) {
            return false;
        }

        $tsfe = self::getTsfe();

        // Check for type blacklisting (from typoscript PAGE object)
        if (in_array($tsfe->type, $this->pageTypeBlacklist)) {
            return false;
        }

        // Check if page is excluded from search engines
        if (!empty($tsfe->page['tx_metaseo_is_exclude'])) {
            return false;
        }

        // Check for doktype blacklisting (from current page record)
        if (in_array((int)$tsfe->page['doktype'], $this->doktypeBlacklist)) {
            return false;
        }

        // all checks successful, page is cacheable
        $this->pageIndexFlag = true;

        return true;
    }